gpt4 book ai didi

jpa-2.0 - 级联 Type.ALL 不起作用

转载 作者:行者123 更新时间:2023-12-04 20:55:39 24 4
gpt4 key购买 nike

我已经在我的实体关系中设置了 CascadeType.ALL,但是当我保留一个实体时它部分工作。

前任 :
` 成员实体:

@OneToMany(mappedBy="member", cascade={CascadeType.ALL})
private List<ContactInfo> contactInfos;

和 ContactInfo 实体:
@ManyToOne
@JoinColumn(name="MEMBERID")
private Member member;

`
Member详细信息还有 ContactInfo数据被持久化。但是 Member.Id未在 ContactInfo 中更新表,因为我在 ContactInfo 中有可为空的外键约束 table 。

每当我坚持 Member 时,我如何让 JPA 自动更新 ContactInfo 中的 Member.Id?

问候,

萨蒂亚

最佳答案

如果您使用 CascadeType.ALL 仅级联 ContactInfo 中的成员,则该成员是拥有方。您必须删除mappedby,复制@JoinColumn 信息并将@ManyToOne 端设置为不可插入和不可更新。这将告诉 hibernate 在保存 MEMBER 时必须更新 CONTACTINFO 的 MEMBERID。

这是映射:

成员(member)实体:

@OneToMany
@JoinColumn(name="MEMBERID") //we need to duplicate the physical information
private List<ContactInfo> contactInfos;

联系实体:
@ManyToOne
@JoinColumn(name="MEMBERID", insertable=false, updatable=false)
private Member member;

Reference Hibernate Section 2.2.5.3.1.1

关于jpa-2.0 - 级联 Type.ALL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com