Hallo an alle!
Ich habe noch ein dringendes Problemchen mit HIbernate.
Ich habe eine n:m Relation, die folgendermassen notiert ist:
Personen:
Projekte:
Schreibe ich nun eine Testmethode, welche eine Person hinzufügt mit zwei Projekten, die existieren, dann wird auf der Konsole nur ein insert für die Person geschrieben.
Hier meine DAOImplementierung für das Update der Person:
Es hat wohl irgendwas mit Cascade zu tun? Ich probiere jedoch schon mit verschiedenen Varianten herum, jedoch kriege ich nicht das Verhalten, das ich haben will.
Füge ich Personen mit Projekten hinzu, dann soll nach dem insert der Person, ein insert auf die Zwischentabelle gemacht werden. Wird eine Person gelöscht, so soll die Reihe(n) der Zwischentabelle gelöscht werden, aber nichts in der Projekttabelle.
Hoffe es kann mir jemand helfen...
Danke + Gruss PHANTOMIAS
Ich habe noch ein dringendes Problemchen mit HIbernate.
Ich habe eine n:m Relation, die folgendermassen notiert ist:
Personen:
Code:
@ManyToMany(mappedBy="persons", fetch=FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private List<Project> projects;
Projekte:
Code:
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name = "Project_Person",
joinColumns = {
@JoinColumn(name="project_id", referencedColumnName="id")
},
inverseJoinColumns = {
@JoinColumn(name="person_id", referencedColumnName="id")
}
)
@Fetch(FetchMode.SELECT)
private List<Person> persons;
Schreibe ich nun eine Testmethode, welche eine Person hinzufügt mit zwei Projekten, die existieren, dann wird auf der Konsole nur ein insert für die Person geschrieben.
Hier meine DAOImplementierung für das Update der Person:
Code:
public void updatePerson(Person p) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session sess = sessionFactory.getCurrentSession();
Transaction tx = sess.beginTransaction();
sess.update(p);
tx.commit();
}
Es hat wohl irgendwas mit Cascade zu tun? Ich probiere jedoch schon mit verschiedenen Varianten herum, jedoch kriege ich nicht das Verhalten, das ich haben will.
Füge ich Personen mit Projekten hinzu, dann soll nach dem insert der Person, ein insert auf die Zwischentabelle gemacht werden. Wird eine Person gelöscht, so soll die Reihe(n) der Zwischentabelle gelöscht werden, aber nichts in der Projekttabelle.
Hoffe es kann mir jemand helfen...
Danke + Gruss PHANTOMIAS