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]
