Hello ...

i have a problem with a n:m association in my example application.

I have a class productgroup "Produktgruppe" and a class product "Produkt". The productgroup should hold a collection of products, but a product could be in more than one productgroup. So i have a n:m association.

I have build 3 tables:
Produktgruppe with id, name, inid [inid because of 1:n association of the productgroups itself]
Produkt with id, name
Produkt_produktgruppe with produkt_id, produktgruppe_id


I have written the descriptor. If i start my application only with productgroups - everthing works perfect. I could also insert a product, which is correctly written to database. But if i restart my application i got:

java.lang.ArithmeticException: / by zero
at org.apache.ojb.broker.accesslayer.BasePrefetcher.<init>(BasePrefetcher.java:76)
at org.apache.ojb.broker.accesslayer.RelationshipPrefetcherImpl.<init>(RelationshipPrefetcherImpl.java:39)
at org.apache.ojb.broker.accesslayer.CollectionPrefetcher.<init>(CollectionPrefetcher.java:60)
at org.apache.ojb.broker.accesslayer.RelationshipPrefetcherFactory.createRelationshipPrefetcher(RelationshipPrefetcherFactory.java:46)
at org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(QueryReferenceBroker.java:328)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:167)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:253)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1217)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:338)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:338)
at de.ba.studi.chtp.model.Portal.getProduktgruppen(Portal.java:122)
...


Here is my descriptor of the two classes:

<class-descriptor
   class="de.ba.studi.chtp.model.Produktgruppe"
   table="Produktgruppe"
>
   <field-descriptor
       name="id"
       column="id"
       jdbc-type="INTEGER"
       primarykey="true"
       autoincrement="true"
   >
   </field-descriptor>
   <field-descriptor
       name="inId"
       column="inId"
       jdbc-type="INTEGER"
   >
   </field-descriptor>
   <field-descriptor
       name="name"
       column="name"
       jdbc-type="VARCHAR"
   >
   </field-descriptor>
   <collection-descriptor
      name="produktgruppen"
      element-class-ref="de.ba.studi.chtp.model.Produktgruppe"
      orderby="inId"
      sort="DESC"
      auto-retrieve="true"
      auto-update="true"
      auto-delete="true"
   >
      <inverse-foreignkey field-ref="inId"/>
   </collection-descriptor>
   <collection-descriptor
      name="produkt"
      element-class-ref="de.ba.studi.chtp.model.Produkt"
      auto-retrieve="true"
      auto-update="true"
      indirection-table="produkt_produktgruppe"
 >
      <fk-pointing-to-this-class column="ProdGruppe_id"/>
      <fk-pointing-to-element-class column="Prod_Id"/>
 </collection-descriptor>
</class-descriptor>

<class-descriptor
   class="de.ba.studi.chtp.model.Produkt"
   table="Produkt"
>
   <field-descriptor
       name="id"
       column="id"
       jdbc-type="INTEGER"
       primarykey="true"
       autoincrement="true"
   >
   </field-descriptor>
   <field-descriptor
       name="name"
       column="name"
       jdbc-type="VARCHAR"
   >
   </field-descriptor>


<collection-descriptor
name="meinung"
element-class-ref="de.ba.studi.chtp.model.Meinung"
auto-retrieve="true"
auto-update="true"
>
<inverse-foreignkey field-ref="prod_id"/>
</collection-descriptor>
</class-descriptor>



Could anyone help?

Thanks, Thomas

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



Reply via email to