Hibernate-version: 2.1.6
Database : DB2 8.2
----------------------------
Hi. I have a problem as I use a Foo class that includes a Bar and Bar has Bar instance as next Bar. When I loaded the Foo instance and update the Bar instance of Foo with the nextBar, I take a NonUniqueObjectException.Because these two instances have the same id. So what should I do?
---------------------
class Foo{
Bar bar;
}
class Bar{
Bar nextBar;
}
----------------------
My application code is:
Foo foo = new Foo(); // have the same id with Bar
Bar bar = new Bar(); // have the same id with Foo
Bar bar2 = new Bar();
bar.setnextBar(bar2);
foo.setBar(bar);
session.update(foo,new Long(foo.getId()));
session.update(bar,new Long(foo.getBar().getId()));
-------------------------------
Mapping is:
<class name="fooDO" discriminator-value="foo" table="FOO">
<id column="ID" name="id" type="long">
<generator class="identity"></generator>
</id>
<subclass name="fooSubDO" discriminator-value="fooSub">
<one-to-one name="BarState" class="BarDO" constrained="false" cascade="save-update"
</subclass>
</class>
<class name="BarDO" discriminator value="BarState" table="BAR">
<id column="ID" name="id" type="long">
<generator class="identity"></generator>
</id>
<many-to-one name="owningFoo" class="fooSubDO" column="FooSubId" cascade="save-update"/>
<subclass name="BarFirstSubStateDO" discriminator-value="BarFirstSubState">
<property name="BarDate" type="java.sql.Date" column="BAR_DATE"/>
</subclass>
<subclass name="BarSecondSubStateDO" discriminator-value="BarFirstSubState">
</subclass>
</class>
|