Hi,
ich habe ein kleines Verständnis-Problem:
Wenn ich eine Entität A habe, die eine Entität B besitzt:
Code:
@Test
public void testAddAB() {
A a = new A();
a.setA("a");
B b = new B();
b.setB("b");
a.setB(b);
//ObjectController.create(b); <<<
ObjectController.create(a);
}
Das Objekt a wird nur in der DB erzeugt, wenn ich das Kommentar (<<<) entferne.
Die Methode create sieht folgendermaßen aus:
Code:
public static void create(Object obj) {
EntityTransaction tx = null;
try {
tx = EntityManagerUtil.em.getTransaction();
tx.begin();
EntityManagerUtil.em.persist(obj);
tx.commit();
} catch (RuntimeException e) {
if (tx != null && tx.isActive()) {
try {
tx.rollback();
} catch (HibernateException e1) {
System.out.println("HibernateException");
}
throw e;
}
}
}
Wieso ist das so? Im Buch "JPA" mit Hibernate habe ich gelesen, dass B automatisch erzeugt wird?
Vielen Dank!