开发者

Cascade Type.ALL not working

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜