Hi, My object model is: Company has BusinessUnits. A BusinessUnit has Probes. I need to add a Probe to a BusinessUnit. A Probe must have a reference to a MonitoringTool.
COMPANY | | depends | | BUSINESSUNIT | | depends | | PROBE ----- references -----> MONITORINGTOOL Here is the excerpt from the mapping file. <class name="com.company.product.Company" identity="companyID" key-generator="SEQUENCE"> <cache-type type="count-limited" capacity="200"/> <description>Company</description> <map-to table="Companies"/> <field name="companyID" type="integer"> <sql name="companyID" type="numeric"/> </field> <field name="companyCode" type="string"> <sql name="code" type="varchar"/> </field> [...] <field name="businessUnits" type="com.company.product.BusinessUnit" collection="arraylist"> </field> </class> <class name="com.company.product.BusinessUnit" identity="businessUnitID" depends="com.company.product.Company" key-generator="SEQUENCE"> <cache-type type="count-limited" capacity="200"/> <description>Business Unit</description> <map-to table="BusinessUnits"/> <field name="businessUnitID" type="integer"> <sql name="businessUnitID" type="numeric"/> </field> <field name="company" type="com.company.product.Company" required="true"> <sql name="companyID"/> </field> <field name="code" type="string"> <sql name="code" type="varchar"/> </field> [...] <field name="probes" type="com.company.product.Probe" collection="arraylist"> </field> </class> <class name="com.company.product.Probe" identity="probeID" depends="com.company.product.BusinessUnit" key-generator="SEQUENCE"> <cache-type type="count-limited" capacity="200"/> <description>Probe</description> <map-to table="Probes"/> <field name="probeID" type="integer"> <sql name="probeID" type="numeric"/> </field> <field name="businessUnit" type="com.company.product.BusinessUnit" required="true"> <sql name="businessunitID"/> </field> [...] <field name="monitoringTool" type="com.company.product.MonitoringTool" check="ignore"> <sql name="monitoringToolID"/> </field> </class> <class name="com.company.product.MonitoringTool" identity="monitoringToolID" key-generator="SEQUENCE"> <cache-type type="count-limited" capacity="5"/> <description>Monitoring Tools</description> <map-to table="MonitoringTools"/> <field name="monitoringToolID" type="integer"> <sql name="monitoringToolID" type="numeric"/> </field> <field name="description" type="string"> <sql name="description" type="varchar"/> </field> </class> The following method is a SessionBean method (JBoss 2.4.3) public Probe addProbe(BusinessUnit bu, Probe p) throws ... { try { Company c = (Company) pm.findByPrimaryKey(com.company.product.Company.class, new Integer(bu.getCompany().getCompanyID())); BusinessUnit bunit = c.getBusinessUnit(bu.getCode()); Probe probe = new Probe(p); // create server-side probe MonitoringTool mt = (MonitoringTool) pm.findByPrimaryKey(com.company.product.MonitoringTool.class, new Integer(p.getMonitoringTool().getMonitoringToolID())); System.out.println("MT found " + mt.getMonitoringToolID()); probe.setMonitoringTool(mt); System.out.println("Assigned MT ID " + probe.getMonitoringTool().getMonitoringToolID()); bunit.addProbe(probe); System.out.println("Probe added : " + probe); System.out.println("Whole BU " + bunit); return probe; } catch(...) } It seems that until the method returns (transactions are bean-managed, with tx ="Required"), everything is good : [Default] MT found 201 [Default] Assigned MT ID 201 [Default] Probe added : Probe 0 FDLT-PRB1 bU: FDLT-BUS1 MonitoringTool201 [Default] Whole BU BU 286 has probes: 1 Probe 0: Probe 0 FDLT-PRB1 bU: FDLT-BUS1 MonitoringTool 201 belongs to: FDLT What's more the object returned to the client contains the pointer to the right MonitoringTool. For some reason, the pointer to MonitoringTool does not get persisted. What am I missing? Any help is appreciated! -- Jacek Jacek Kruszelnicki Numatica Corporation E-mail: [EMAIL PROTECTED] Phone: (781) 756 8064 ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev