【问题标题】:Change Hibernate's PersistentSet to HashSet将 Hibernate 的 PersistentSet 更改为 HashSet
【发布时间】:2020-08-01 14:24:38
【问题描述】:

我有一个程序可以比较来自 2 个数据库的对象。

我有来自 2 个不同数据库的对象,我必须对它们进行比较。问题是hibernate返回一个persistentSet,这会导致程序失败,因为它只支持java Collections。

有没有一种优雅的方法可以将此persistentSet 更改为HashSet。我已经尝试过 Introspector 方法,但它似乎仍然不适用于这个比较器。

【问题讨论】:

  • 比较的代码是什么?

标签: hibernate persistent-set


【解决方案1】:

您的程序不应直接依赖于 PersistentSet 类,这被认为是 Hibernate 的内部实现细节。

相反,您应该在 Java 代码中使用 java.util.Set 类型(PersistentSet 实现)。

只是不要尝试将PersistentSet 转换为HashSet。而是将其分配给 java.util.Set,就像在所有 Hibernate 代码示例中一样。

【讨论】:

  • 嗨,PersistentSet 是从数据库中返回的,因为在获取的对象中有一个惰性关联。
  • 但是PersistentSet 实现了java.util.Set
  • 嗨 Gavin,问题是进行比较的框架,当它提供包含持久集的实体时,它不能正常工作。我编写了一个小代码来删除持久集,下面的代码比较对象工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
相关资源
最近更新 更多