Hibernate集合映射、重构

Hibernate集合映射、重构,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,标题可能不是很具有描述性 我最近遇到了使用链接表休眠多对多集合的问题。在我们使用List的应用程序中,无论何时从集合中删除或插入一个条目,hibernate都会删除链接表中的所有条目,并继续添加它们,或者添加新条目,或者不添加已删除的条目。正如您所看到的,这是一场性能噩梦 所以我想把所有这些关系转换成Set。我想在不改变接口的情况下实现这一点,不幸的是,客户机代码分布在不同的位置,要设置的方法是不允许的 我尝试将属性更改为Set,但没有将getter和Setters内部映射列表的签名更改为Set

标题可能不是很具有描述性

我最近遇到了使用链接表休眠多对多集合的问题。在我们使用List的应用程序中,无论何时从集合中删除或插入一个条目,hibernate都会删除链接表中的所有条目,并继续添加它们,或者添加新条目,或者不添加已删除的条目。正如您所看到的,这是一场性能噩梦

所以我想把所有这些关系转换成Set。我想在不改变接口的情况下实现这一点,不幸的是,客户机代码分布在不同的位置,要设置的方法是不允许的

我尝试将属性更改为Set,但没有将getter和Setters内部映射列表的签名更改为Set,反之亦然,但是hibernate仍然认为映射是有意义的


有人知道如何解决这个问题吗

Hibernate有一个多对多关联的特殊集合;这个“为什么不使用它呢?”Boristeider,我想使用Set,因为它更有意义。我希望在hibernate上下文之外的应用程序中使用哈希集合来提高性能。。谢谢你的IDBag想法。如果找不到可行的替代方案,我可能会使用它。您可以为Hibernate使用私有getter和setter,为您的域使用公共getter和setter。这样,您就可以在内部使用集合,并在hibernate访问器中进行复制。