【发布时间】:2018-07-05 11:19:50
【问题描述】:
我正在尝试保存一个已存在一个子实体的实体。 我正在使用合并来保存实体。保存非持久化实体,但使用覆盖 DB 中的值的默认值更新现有实体。
教室-主课:
@OneToMany(
orphanRemoval = true,
fetch = FetchType.EAGER
)
@JoinTable(...)
@Cascade(CascadeType.ALL)
private List<Students> students;
在学生课上:
@OneToOne(
orphanRemoval = true,
fetch = FetchType.EAGER
)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private Student student;
在 Student 类中,有一个字段具有默认值。实体中的现有值正在更新为默认值。
我正在尝试通过合并来保存父实体(教室)。
在这种情况下,merge 是正确的运算符吗?或者有什么建议可以解决这个问题?
【问题讨论】:
-
CascadeType.ALL暗示CascadeType.MERGE,意味着子实体与父实体合并。如果您不想要这种行为,请停止使用CascadeType.ALL