我使用JPA 2.0标准和hibernate作为持久性提供程序。在使用ElementCollections时,我很想知道为什么org.hibernate.collection.PersistentSet不可更新?
PersistentSet中的方法isRowUpdatePossible()返回false。与可更新的PersistentList相比,Set执行多次删除和插入,而不仅仅是更新。
例如考虑我的实体具有当前具有值{1,2,3}的Set。我通过清除它然后添加{4,5,6}更新集合。在调用entityManager.merge(entity)3时,会触发delete和insert查询。
如果在上面的示例中我使用了List,那么只使用绑定值触发一个更新查询。
当我的数据库可以设法避免列中的重复时,查询的数量促使我得出使用List的结论。
总结问题
对这些问题的想法将不胜感激。