I have a one-to-one bidirectional relationship using the foreign key as:
member(id, ...)
memberaddress(id, ...)
The member has:
Code:
public class Member ...
{
...
@Id
@Column(name = "member_id")
@GeneratedValue(strategy = AUTO)
public int getId() {
return id;
}
@OneToOne(optional = true, cascade = ALL, fetch = EAGER)
@JoinColumn(name="member_id", unique = true, updatable = false)
public MemberAddress getMemberAddress()
{
return memberAddress;
}
...
}
The member address has:
Code:
public class MemberAddress ...
{
@OneToOne(mappedBy = "memberAddress")
public Member getMember()
{
return member;
}
@Id
@Column(name = "member_id", updatable= false, unique = true)
public int getId()
{
return id;
}
...
}
In my application I call:
Code:
// Member newMember = Member();
...
MemberAddress ma = new
stateOrProvince, zipOrpostalCode);
ma.setId(newMember.getId());
newMember.setMemberAddress(ma);
ma.setMember(newMember);
em.persist(newMember);
Both entities are updated to the MySQL DB. However, the MemberAddress id value (foreign/primary key) is not updated (it still has the -1 value that was set during construction).
How do I get Hibernate to update the weak entity MemberAddress's foreign key which references the parent entity? And actually I thought with all the annotations I was using, that this was suppose to be already taken care of for me. Or am I missing something?
Any help most appreciated.