db-ojb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jakob Braeuchi <jbraeu...@gmx.ch>
Subject Re: Oracle exception: column ambiguously defined - need help
Date Wed, 08 Jun 2005 16:56:36 GMT
hi alexandre,

the mapping looks a little strange to me. From Folder you have two m:n 
relationships pointing to different classes, but both use the same 
indirection table. another thing is the attribute 'INROOT' in the 
criteria. there's no such attribute defined in the class-descriptor of 
class 'Folder'. the attributes used in a query are usually attributesof 
the class not columns.

jakob

thomas0@etu.unige.ch schrieb:
> Hello,
> 
> My name is Alexandre and I'm a student in the University of Geneva in the
> Information Systems departement.
> 
> I'm currently working on a web application using an OJB layer. I have a
> problem of column ambiguously defined when querying my Oracle Database through
> OJB's QueryFactory method. I read Jakob Braeuchi's  answer to Naveen regarding
> column prefixes.
> Unfortunately, I didn't quite understand his solution: how can I base columns
> on
> attributes?
> 
> here is the method querying the database:
> 
> PersistenceBroker broker =
> PersistenceBrokerFactory.defaultPersistenceBroker();
>         Collection rootelements = null;
>         Criteria crit = new Criteria();
>         crit.addEqualTo("INROOT","1");
>         Query q = QueryFactory.newQuery(Folder.class, crit);        
>         try{
>             rootelements = broker.getCollectionByQuery(q);
>         }
>         catch(PersistenceBrokerException e)
>         {
>             e.printStackTrace();
>             if(broker != null) broker.abortTransaction();
>         }
>         finally
>         {
>             if (broker != null) broker.close();
>         }
> 
> And here is the part of the relevant repository:
> 
>   <class-descriptor
>     schema="FM"   
>     class="matis.component.filemanager.Folder" 
>     table="FOLDER">
>     
>       <field-descriptor
>          name="id_Elem"
>          column="ID_FOLDER"
>          jdbc-type="INTEGER"
>          primarykey="true"/>
>       
>        <collection-descriptor
>          name="fichiersContained" 
> 	 collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList"
>          element-class-ref="matis.component.filemanager.Fichier"
>          auto-retrieve="true"
>          auto-update="true"
>          auto-delete="true"
>          indirection-table="INFOLD">
>          <fk-pointing-to-this-class column="FOL_ID_ELEMENT"/>
>          <fk-pointing-to-element-class column="ID_ELEMENT"/>
>        </collection-descriptor>
>       
>        <collection-descriptor
>          name="foldersContained" 
> 	 collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList"
>          element-class-ref="matis.component.filemanager.Folder"
>          auto-retrieve="true"
>          auto-update="true"
>          auto-delete="true"
>          indirection-table="INFOLD">
>          <fk-pointing-to-this-class column="FOL_ID_ELEMENT"/>
>          <fk-pointing-to-element-class column="ID_ELEMENT"/>
>        </collection-descriptor>
>        
>        <reference-descriptor name="super"
>          class-ref="matis.component.filemanager.Element"
>          auto-retrieve="true"
>          auto-update="true"
>          auto-delete="true">
>         <foreignkey field-ref="id_Elem"/>
>     </reference-descriptor>
>     
>    </class-descriptor>
> 
> When logging OJB's activity, I can see the query who raises the Oracle
> exception (ORA-00918: column ambiguously defined), here it is:
> 
> SELECT A0.ID_FOLDER 
> FROM FM.FOLDER A0,INFOLD,FM.element A1,INFOLD 
> WHERE A0.ID_FOLDER=A1.ID_ELEMENT 
> AND ((INFOLD.FOL_ID_ELEMENT IN (?,?,?)) 
> AND A0.ID_FOLDER = INFOLD.ID_ELEMENT)
> 
> I'm a bit lost since it's my first time using OJB (I hope it's not the
> last).
> 
> Thanks a lot for reading my request and thanks in advance for your help.
> 
> Yours Sincerely,
> 
> Alexandre Thomas
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Mime
View raw message