Is this a bug or am I doing something wrong?
Illustration of issue: Team 1..1 <------> 0..* Member
I don't want a pointer from Member to Team, only a Set of Members in Team. The code looks something like this.
Team t = new Team("t");
Member m1 = new Member("m1");
t.members.add(m1);
...
session.save(t);
If I define the Set as
@OneToMany(cascade = CascadeType.ALL)
public Set<Member> members;
...it works as expected, but...
@OneToMany(cascade = {
CascadeType.PERSIST,
CascadeType.DETACH,
CascadeType.REFRESH,
CascadeType.REMOVE,
CascadeType.MERGE })
public Set<Member> members;
...it fails with a
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: tmp.Member
Of course there are easy workarounds but I'd like to understand why this is happening.