Hi,
I have problems to save objects with depended objects that
links to another object.
mapping.xml:
<class name="com.sourcepark.requirementManagement.dbObjects.Requirement"
identity="id" key-generator="MAX">
<map-to table="requirements"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
</field>
<field name="name" type="string">
<sql name="name" type="char"/>
</field>
<field name="events" type="com.sourcepark.requirementManagement.dbObjects.RequirementEvent"
collection="vector" required="true"
set-method="setEventsAsReference" get-method="getEventsAsReference"/>
</class>
<class name="com.sourcepark.requirementManagement.dbObjects.RequirementEvent"
depends="com.sourcepark.requirementManagement.dbObjects.Requirement"
identity="id" key-generator="MAX">
<map-to table="requirement_events"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
</field>
<field name="requirement" type="com.sourcepark.requirementManagement.dbObjects.Requirement" >
<sql name="req_id"/>
</field>
<field name="name" type="string">
<sql name="name" type="char" required="true"/>
</field>
<field name="user" type="com.sourcepark.requirementManagement.dbObjects.User">
<sql many-key="user_id"/>
</field>
</class>
<class name="com.sourcepark.requirementManagement.dbObjects.User"
identity="id" key-generator="MAX">
<map-to table="users"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
</field>
<field name="name" type="string">
<sql name="name" type="char"/>
</field>
</class>
this is the code to save the requirement-Object:
...
RequirementEvent reqEvent=new RequirementEvent();
reqEvent.setName("event-Name");
//gets an (in DB existing) user with id=1
User user=userManager.getUser(1);
reqEvent.setUser(user);
Requirement newRequirement=new Requirement();
reqEvent.setRequirement(newRequirement);
newRequirement.setName("REQUIREMENT-Name");
newRequirement.addEvents(reqEvent);
...
db.begin();
//make User of new Event persistent
RequirementEvent lastEvent=(RequirementEvent)(requirement.getEventsAsReference().lastElement());
newEvent.setUser((User)persistence.load(User.class,newEvent.getUser().getId()));
System.out.println("UserId of last Event: "+newEvent.getUser().getId());
System.out.println("User-persistent? : "+persistence.isPersistent(newEvent.getUser()));
db.create(requirement);
System.out.println("User-persistent? : "+persistence.isPersistent(newEvent.getUser()));
db.commit();
...
and here is the output:
...
UserId of last Event: 1
User-persistent? : true
Error while saving object: org.exolab.castor.jdo.PersistenceException:
Nested error: java.sql.SQLException: ORA-01400: Einf�gen von NULL in
("CASTOR"."REQUIREMENT_EVENTS"."USER_ID") nicht m�glich
User-Persistent? : true
...
Castor tries to insert null in the foreign-key for user.
Whats wrong? Is it not possible to link from depended objects
to other objects?
Thanks,
Steffen
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev
- Re: [castor-dev] saving depended Object that links to anot... Steffen Fiedler
- Re: [castor-dev] saving depended Object that links to... Steffen Fiedler
- Re: [castor-dev] saving depended Object that links to... terry . oconnor
