Hibernate version:3.0
Ich habe ein Problem mit einer bidirektionalen ManyToMany-Assoziation:
DbProcess kennt mehrere DBUSerProfiles und umgekehrt(siehe Codeblock).
Wenn ich ein DbUserProfile profile zu einem Prozess hinzufuege, dann soll danach der Prozess in profile.getProcesses auftauchen. Der Eintrag in der Jointable stimmt aber getProcesses() ist leer.
Kennt jemand dazu eine Lösung?
Code:
DbProcess:
@ManyToMany(
targetEntity=DbUserProfile.class,
cascade={CascadeType.PERSIST, CascadeType.MERGE}
)
@JoinTable(
table=@Table(name="process_userprofile"),
joinColumns = { @JoinColumn( name="processId") },
inverseJoinColumns = @JoinColumn( name="profileId")
)
public Set<DbUserProfile> getUserProfiles()
{
return userProfiles;
}
und DbUserProfiles:
@ManyToMany(
targetEntity=DbProcess.class,
cascade={CascadeType.PERSIST, CascadeType.MERGE}
)
@JoinTable(
table=@Table(name="process_userprofile"),
inverseJoinColumns = { @JoinColumn( name="processId") },
joinColumns = @JoinColumn( name="profileId")
)
public Set<DbProcess> getProcesses()
{
return processes;
}
Der Fehler tritt hier auf:
Code:
DbUserProfile out2 = new DbUserProfile();
session.save(out2);
this.process.addUserProfile(out2);
this.session.flush();
assert(out2.getProcesses() != null); //NullPointerException !!!