Hi,

I'm trying to do the following 1:n mapping. Class Project should have a vector
of n Resource objects, while each Resource object should know it's Project object.
Storing objects works fine, the references in the resource objects to their project objects
are placed by OJB.


What does not work is retrieving a Project object and accessing the Vector with Resource objects (only if I set "auto retrieve" to "false").
I always get an SQL exception which says that column "project_id" could not be found (although it exists in the database):


org.apache.ojb.broker.PersistenceBrokerException: org.apache.ojb.broker.PersistenceBrokerSQLException: java.sql.SQLException: Column not found: Unknown column
'project_id' in 'where clause'


org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:211)
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:223)
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1205)
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:331)
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:331)
...



The mapping looks like this:
----------------------------


public class Project { ...

        private Vector resources;
}

public class Resource {

        ...
        
        private int project_id;

        Project project;
}

The repository looks like this:
-----------------------------------------------
<class-descriptor
          class="au.edu.latrobe.cs.ogds.Project"
          table="PROJECT"
   >
      <field-descriptor
         name="id"
         column="ID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
      />
      ...
          <collection-descriptor
         name="resources"
         element-class-ref="au.edu.latrobe.cs.ogds.Resource"
         auto-retrieve="true"
         auto-update="true"
         auto-delete="true"
      >
         <inverse-foreignkey field-ref="project_id"/>
      </collection-descriptor>
</class-descriptor>
---------------------------------------------------------
<!-- Definitions for Resource -->
<class-descriptor
          class="au.edu.latrobe.cs.ogds.Resource"
          table="RESOURCE"
   >
      <field-descriptor
         name="id"
         column="ID"
         jdbc-type="INTEGER"
                 primarykey="true"
                 autoincrement="true"
      />

        ...

          <field-descriptor
         name="project_id"
         column="PROJECT_ID"
         jdbc-type="INTEGER"
      />
      <reference-descriptor
         name="project"
         class-ref="au.edu.latrobe.cs.ogds.Project"
         auto-retrieve="true"
         auto-update="true"
         auto-delete="true">
         <foreignkey field-ref="project_id"/>
      </reference-descriptor>
</class-descriptor>
------------------------------------------------------------



--
Erstellt mit M2, Operas revolution�rem E-Mail-Modul: http://www.opera.com/m2/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to