@OneToMany(mappedBy="columnOne", orphanRemoval=true, cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<Constraint> constraints = new ArrayList<Constraint>();
每当父子记录更新时,子表记录也应该更新。
当我厌倦了session.SaveOrUpdate()时,父表记录得到了更新,但每次插入新记录时子表都没有更新,导致重复数据
当遇到session.merge()时,得到错误,A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: com
作为约束可能为null,因为并不总是子表有数据
要解决此问题,请尝试设置空集合,但这会导致数据库中的许多行具有空值。
即使子表数据可能为空,有没有办法更新父和子
答案 0 :(得分:0)
每当父子记录更新后,子表记录 也应该得到更新。
Hibernate脏检查会为您做到这一点,您需要管理所有实体,默认情况下,任何管理实体的更改都会检查所有管理实体及其属性,请查看此link以进一步检查信息
当我厌倦了session.SaveOrUpdate()时,得到了父表记录 每次插入新记录时都会更新子表,而不是 更新导致重复数据
我猜你的子实体没有被管理,也没有设置id值,所以你的孩子会被级联(因为这是你想要的设置cascadetype)并且将作为新记录保存在你的数据库中。< / p>