You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Stephan Wannenwetsch <wa...@reitec.de> on 2003/12/05 15:01:06 UTC
1:1 relationship
Hallo,
I'm try to establish a 1:1 relationship between two object via a simple
object reference.
Imagine the following object modell
Class BusinessPartner();
Integer bpid;
Customer customer;
Class Customer();
BusinessPartner businessParner;
To establish a relationship between two instances of BusinessPartner and
Customer I use the follwing code:
...
Customer cust = new Customer();
BusinessPartner bp = new BusinessPartner();
cust.setBusinessPartner(bp);
bp.setCustomer(cust);
...
Mapping of the repository_user.xml
<class-descriptor
class="demo.myshop.model.ojb2.BusinessPartner"
table="OJB_BP">
<field-descriptor
name="bpid"
column="BPID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"/>
<field-descriptor
name="fk_cust"
column="FK_CUST"
jdbc-type="INTEGER"
access="anonymous"/>
<reference-descriptor
name="customer"
auto-retrieve="false"
class-ref="demo.myshop.model.ojb2.Customer">
<foreignkey>
field-ref="fk_cust""
</foreignkey>
</reference-descriptor>
</class-descriptor>
<class-descriptor
class="demo.myshop.model.ojb2.Customer"
table="OJB_CUSTOMER">
<field-descriptor
name="fk_bpid"
column="FK_BPID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="false"
access="anonymous"/>
<reference-descriptor
name="businessPartner"
class-ref="demo.myshop.model.ojb2.BusinessPartner">
<foreignkey field-ref="fk_bpid"/>
</reference-descriptor>
</class-descriptor>
My objective is not to have extra foreignkeys in my classes, which I do
not need in java to do such a relationship.
Doing it this way I get the following error:
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:666)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.ojb.broker.OJBRuntimeException: Incorrect field
reference "null" in
org.apache.ojb.broker.metadata.ObjectReferenceDescriptor@40afb9[cascade
delete=false,cascade retrieve=false,cascade store=false,is
lazy=false,class of Items=class demo.myshop.model.ojb2.Customer]
at
org.apache.ojb.broker.metadata.ObjectReferenceDescriptor.getForeignKeyFi
eldDescriptors(Unknown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(Unkn
own Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(Unkn
own Source)
Thanks,
Stephan
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org