【问题标题】:What are the different collections supported by HibernateHibernate 支持哪些不同的集合
【发布时间】:2013-10-01 07:09:11
【问题描述】:

Hibernate 支持的不同集合有哪些

  1. List --> ArrayList、LinkedList等
  2. Set --> Treeset、HashSet 等
  3. Map --> HashMap 等

并告诉我哪些是不支持的集合以及如何实现它们?

【问题讨论】:

  • 你为什么不关注你的需求,看看 Hibernate 是否支持,而不是将所有现有的集合分类为支持或不支持?
  • 也许这个链接对你有帮助:stackoverflow.com/questions/1505874/…
  • 您的问题/问题是什么。然后你可以决定使用哪一个。
  • 使用Hashset进行hibernate相关的集合

标签: java hibernate


【解决方案1】:

根据休眠documentation

" 由 Hibernate 注入的持久性集合的行为类似于 HashMapHashSetTreeMapTreeSetArrayList,具体取决于接口类型。"

请注意,它们的行为类似于这些类,但它们实际上是特定于 Hibernate 的集合类。


并告诉我哪些是不支持的集合以及如何实现它们?

您的意思是:1) 任何不在上面列表中的类,以及 2) 除非您愿意修改核心 Hibernate 代码库,否则您不能这样做。

【讨论】:

  • 不支持在实体中声明的集合在二进制文件中序列化。单个DB字段不可读,但数据不丢失
【解决方案2】:

Hibernate 仅支持从接口 Set、Map 和 Collection 扩展而来的集合类型。要使用此集合,您是否必须创建超类型(接口类)的变量;

例子:

class Pojo{
        Map map;

        public Pojo(){
         map = new HashMap<>();
       }

}

【讨论】:

  • 我在其他帖子中看到 Hivernate 有一个属性来设置集合类型(collection-type),但我无法确认。
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 2011-02-06
  • 2016-09-17
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多