Doch das ist der Code den ich ausführe, ich habe Ihn nur ein bischen vereinfacht.
Code:
Parent p = new Parent();
Child c = new Child();
p.addChild(c);
c.setParent(p);
session.save(p);
Transaction transaction = session.beginTransaction();
if (p != null) {
session.save(p);
}
transaction.commit();
Das ganze funktioniert
1. Wenn man das Parentobject aus der datenbank liest
2. und dann das Childobject hinzufügt und dann ein save auf das child object ausführt(Es wird ein Insert in die Child Tabelle ausgeführt)
Das ganze funktioniert nicht wenn
1. Das Parentobject neu angelegt wird
2. Wenn ein save nur auf das Parentobject ausgeführt wird. Es muss ein expizites save auf das Childobject ausgeführt werden. (Sonst wird kein Insert in die Child Tabelle ausgeführt sonder nur ein Update)
Deshalb funktioniert mein obiger code nicht, sondern nur dann, wenn bereits das Parentobject in der Datenbank existiert. Bei der Neuanlage nicht.
Grüsse