Hi Igarki,

can you please create a new issue at our bugtracking tool http://jira.codehaus.org/browse/CASTOR and attach a minimal test case following our bug submission guidlines at http://castor.codehaus.org/how-to-submit-a-bug.html

Regards
Ralf


Igarki San Millan schrieb:
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

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to