所以我的POI就是你有一个@Entity
的集合。假设您使用一组项目获取实体。现在让我们假设集合中有条目。
我的问题是:如果替换具有以下内容的集合会发生什么:
Item(id: 1, name: "box"), Item(id:2, name: "plate)
有一个集合:
Item(id:2, name: "puppy")
所以:如果删除orphans为true且启用了级联,则id == 1的项目将消失。但是当替换id == 2的项目时,它是否会更新为标签“puppy”而不是“plate”?
使用@Transactional
时弹簧启动有什么问题?
答案 0 :(得分:2)
如果您在会话中提取了一个集合,则不应该"替换"它有一个新的。相反,您应该更新现有的。
如果要从此集合中删除条目,请获取迭代器并调用"删除"在那条目上。如果要更新条目,只需将其删除并进行更新即可。您之前未触及的上一个条目将保留在DB中。
"删除孤儿"如果您已经迭代了集合并删除了一些条目,则会出现。所以父母和孩子之间的联系不再存在,你不希望孩子独立生存。
这可能也有帮助 - Hibernate deleting orphans when updating collection