java - Hibernate 中的包和列表有什么区别?

标签 java hibernate bag

在hibernate中,映射集合时,Bag具有类似于列表的行为:

  1. 它是无序的
  2. 它允许重复

当两者的行为相似时,为什么我们还要有 bag?

最佳答案

NHibernate 语义:

  1. 列表:实体的有序集合,允许重复。在代码中使用 .net IList。索引列需要在 NHibernate 中进行映射。
  2. 集合:唯一实体的无序集合,不允许重复。在代码中使用 Iesi.Collection.ISet。重写 GetHashCode 和 Equals 以指示重复的业务定义非常重要。可以通过定义 orderby 或定义比较器来排序,从而生成 SortedSet 结果。
  3. Bag:实体的无序列表,允许重复。在代码中使用 .net IList。列表的索引列未映射,且不受 NHibernate 认可。

答案来自此Post

关于java - Hibernate 中的包和列表有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548013/

相关文章:

java - EditText键盘输入类型问题

java - 使用 FK 作为过滤器在 Java 上创建查询

join - 如何使用 Pig 对基数为 0,1 且主要为 1,n 的 2 个 csv 文件进行非规范化?

java - 如何在检索期间忽略 hibernate 中自动生成的键

java - 如何将学生添加到学生组

java - 通过遍历枚举来分配参数

python - 使用 dask 时如何避免 `Bag.take(n)` 的空结果?

Java HashMultiMap 存储问题

java - Postgresql Replication 解决方案及其性能

sql - Hibernate setMaxResults() 不适用于 Sybase 数据库查询