I have set CascadeType.ALL in my entity relation, but it works partially whenevr I persist an entity.
Ex : ` Member entity :
@OneToMany(mappedBy="member", cascade={CascadeType.ALL})
private List<ContactInfo> contactInfos;
and ContactInfo entity :
@ManyToOne
@JoinColumn(name="MEMBERID")
private Member member;
`
Member
details and also ContactInfo
data are persisted. But Member.Id
is not updated in ContactInfo
table as I have nullable foreignkey constraint in ContactInfo
table.
How would I make JPA to automatically update Member.Id in ContactInfo also whenever I persist Member?
Regards,
Satya
If you use the CascadeType.ALL to only cascade the member in the ContactInfo, then the Member is the owning side. You have to remove the mappedby, duplicate the @JoinColumn info and put the @ManyToOne side as non-insertable and non-updatable. This will tell hibernate that the MEMBERID of CONTACTINFO must be updated when saving a MEMBER.
Here is the mapping:
Member entity :
@OneToMany
@JoinColumn(name="MEMBERID") //we need to duplicate the physical information
private List<ContactInfo> contactInfos;
Contact entity :
@ManyToOne
@JoinColumn(name="MEMBERID", insertable=false, updatable=false)
private Member member;
Reference Hibernate Section 2.2.5.3.1.1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With