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 

Reply via email to