Hallo,
ich beziehe mich hierauf:
Hibernate 3 Reference 7.5.3. many to many
Ich habe eine logisch praktisch identische Situation.
Der einzige Unterschied ist, dass ich für die Tabelle PersonAddress keinen Primärschlüssel definiere, weil es mir dann manche RDBMS z.B. MySQL nicht erlauben Foreign-Key-Constraints auf die Tabellen Person und Address zu definieren. Stattdessen verwende ich einen Unique Index.
Ich habe es aber auch mal ohne Foreign-Key-Constraints und faür mit Primärschlüssel versucht und komme zum gleichen Ergebnis.
Wenn ich ein Person und ein Address POJO erzeuge und sie gegenseitig referenziere:
person.getAddresses().add(address);
address.getPersons().add(person);
und dann einfüge:
session.save(address);
session.save(person);
session.getTransaction().commit();
geschieht folgendes:
Die Datensätze für Person und Address werden angelegt, aber es wird, entgegen meiner Erwartung, kein Datensatz in der Tabelle PersonAddress angelegt, der die bidirektionale Relation abbilden und damit persistent machen würde.
die Verwendung von session.persist() anstelle von session.save() bringt auch nicht das gewünschte Ergebnis.
Jeder Tip ist sehr willkommen
- Stefan