Hello,
I'm having a problem when I try to load an object.
The error is as follows:
GRAVE: A fatal error occurred while loading projectv1a.KnowledgeBase using SQL:
SELECT
knowledgeBase.kbID,instanceList.instanceListID,knowledgeBase.ontologyID,knowledgeBase.relationListID
FROM knowledgeBase LEFT OUTER JOIN instanceList ON
knowledgeBase.kbID=instanceList.knowledgeBaseID WHERE knowledgeBase.kbID=?
java.sql.SQLException: Column Index out of range, 5 > 4.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.checkColumnBounds(ResultSet.java:662)
at com.mysql.jdbc.ResultSet.getNativeInt(ResultSet.java:3897)
at
com.mysql.jdbc.ResultSet.getNativeInt(ResultSet.java:3892)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2555)
at org.castor.jdo.engine.SQLTypeInfos.getValue(SQLTypeInfos.java:228)
at
org.exolab.castor.jdo.engine.SQLStatementLoad.executeStatement(SQLStatementLoad.java:345)
at org.exolab.castor.jdo.engine.SQLEngine.load(SQLEngine.java:349)
at org.exolab.castor.persist.ClassMolder.loadFields(ClassMolder.java:565)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:614)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.PersistanceCapableRelationResolver.load(PersistanceCapableRelationResolver.java:416)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.PersistanceCapableRelationResolver.load(PersistanceCapableRelationResolver.java:416)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.ManyRelationResolver.load(ManyRelationResolver.java:257)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.PersistanceCapableRelationResolver.load(PersistanceCapableRelationResolver.java:416)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.ManyRelationResolver.load(ManyRelationResolver.java:257)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.castor.persist.resolver.PersistanceCapableRelationResolver.load(PersistanceCapableRelationResolver.java:416)
at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
at
org.exolab.castor.persist.LockEngine.load(LockEngine.java:399)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:567)
at
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:430)
at
org.exolab.castor.jdo.engine.AbstractDatabaseImpl.load(AbstractDatabaseImpl.java:301)
at
org.exolab.castor.jdo.engine.AbstractDatabaseImpl.load(AbstractDatabaseImpl.java:248)
at projectv1a.DataBase.load(DataBase.java:74)
at projectv1a.Test.main(Test.java:378)
What I do in my aplication is to load an object that is related indirectly with
KnowledgeBase. The mapping for knowledgeBase is:
<class name="projectv1a.KnowledgeBase" identity="identity"
key-generator="IDENTITY">
<description>KnowledgeBase's mapping
directory</description>
<map-to table="knowledgeBase"/>
<field name="identity" type="integer" get-method="getId" set-method="setId">
<sql name="kbID"/>
</field>
<field name="insList" type="projectv1a.InstanceList" collection="vector"
required="false" get-method="getInstanceList" set-method="setInstanceList">
<sql many-key="knowledgeBaseID" />
</field>
<field name="ontology" type="projectv1a.Ontology" get-method="getOntology"
set-method="setOntology">
<sql name="ontologyID"/>
</field>
<field name="relationList" type="projectv1a.RelationList"
get-method="getRelationList"
set-method="setRelationList">
<sql name="relationListID"/>
</field>
</class>
I suppose that the problem is in the relation 1:N with InstanceList class. Its
mapping below:
<class name="projectv1a.InstanceList" identity="identity"
key-generator="IDENTITY" depends="projectv1a.KnowledgeBase">
<description>InstanceList's mapping directory</description>
<map-to table="instanceList" />
<field name="identity" type="integer" get-method="getId" set-method="setId">
<sql name="instanceListID"/>
</field>
<field name="classSpecification" type="projectv1a.ClassSpecification"
get-method="getClassSpecification" set-method="setClassSpecification">
<sql name="classSpecificationID"/>
</field>
<field name="instanceList" type="projectv1a.InstanceSpecification"
collection="vector" required="false" get-method="getInstanceList"
set-method="setInstanceList">
<sql many-key="iL_id" />
</field>
<field name="knowledgeBase" type="projectv1a.KnowledgeBase"
get-method="getKnowledgeBase" set-method="setKnowledgeBase" >
<sql name="knowledgeBaseID" />
</field>
</class>
I have been trying with 3 releases of Castor: 0.9.9, 1.0.3 and the last 1.1M2.
In all of them I got the same error.
I have the latest version of mysql-connector(5.0.4) and, also, the last mysql
version running(5.1.14).
I want to explain that I don´t do any OQLQuery manually, I execute the method
load to
load the main object of my aplication and the rest of the objects are related
with the main. KnowledgeBase is one of this objects. I can´t understand how can
I get a SQLException like this.
Of course, the DataBase is not empty.
Thanks in advaced
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.yahoo.es