gpt4 book ai didi

java - 在 Hibernate 集合和我自己的集合之间转换

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:07 31 4
gpt4 key购买 nike

我已经设置了 Hibernate 来给我一个 Set<Integer>我在内部与 Set<MyObjectType> 之间进行转换( MyObjectType 可以用单个整数表示)。也就是说,当Hibernate调用我的void setMyObjectTypeCollection(Set<Integer> theSet)时方法我迭代 theSet 中的所有元素并将它们转换为MyObjectType 。当 Hibernate 调用我的 Set<MyObjectType> getMyObjectTypeCollection() 时我分配一个新的 HashSet 并转换 MyObjectType发送至Integer s。

问题是每次我调用 commit ,Hibernate 会删除集合中的所有内容,然后重新插入它,无论集合中的任何元素是否发生更改,甚至集合本身是否发生更改。

虽然我在技术上不认为这是一个错误,但我担心经常删除和插入许多行会导致数据库执行不必要的缓慢。

有没有办法让 Hibernate 认识到,即使我分配并返回了集合的不同实例,该集合实际上包含它曾经使用过的所有项目,并且不需要删除并重新插入它们?

最佳答案

我认为实现目标的最佳方法是使用 UserType 。基本上,它可以让您处理从 SQL 到您自己的对象的转换(来回)。

您可以查看如何使用它的示例 here .

关于java - 在 Hibernate 集合和我自己的集合之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326298/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com