- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在持久化和从数据库中检索时维护集合顺序的首选方法是什么?
我知道 @OrderBy 更像是一种内存中排序,只有当您按照您选择的列的顺序保留行时,它才可能用于检索。
假设我选择使用由数据库序列支持的列, hibernate 将确保集合中的元素以与集合中相同的顺序持久化(比如列表)。
任何想法?
更多细节:
假设我有一个类 A,它与类 B 有一对多的关系。 B 有一个主键字段“Id”,它由 DB 中的序列支持。
Class A {
List<B> bList;
}
bList = { b1, b2, b3 }
----------------
Id ----bValue
----------------
1------ b1
2------ b2
3-------b3
------------------
----------------
Id ----bValue
----------------
1------ b2
2------ b1
3-------b3
------------------
最佳答案
OrderBy 在生成的 SQL 中添加 order by 子句,将检索到的集合的成员按目标实体的表的列进行排序:
@OrderBy("lastname ASC")
public List<Student> students;
select ... order by student.lastname ASC
[student0, null, null, student3, null, student5]
session.save()
, 的 session.saveOrUpdate()
,这会为实体分配一个 ID,因此为 b1、b2 和 b3 调用它将遵守顺序 flush()
)@OrderColumn
对集合的注释。 Hibernate 将自动填充此列,其中 b1 为 0,b2 为 1,b3 为 2。当您重新加载父实体时,它们在列表中的顺序相同。
关于Hibernate:@OrderBy vs @OrderColumn 维护集合的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433195/
我使用列表。该列表由一个复合主键组成,该主键也用于对列表进行排序。问题是如果我删除列表中的一个元素(关键化合物),注解 @OrderColumn 生成更新主键的请求,成本上升异常类型: [26-05-
我有@OrderColumn 的@ManyToMany 映射如下: class Tag { @ManyToMany(fetch = FetchType.LAZY) @Getter @J
这是一个后续问题: Is @ManyToMany(mappedBy = ... ) + @OrderColumn supported by the JPA? 我指的是@OrderColumn Java
我正在尝试创建保留顺序的父子表。 Hibernate 文档中的示例 7.8 显示了如何执行此操作: @Entity public class Customer { @Id @GeneratedV
我有 2 个具有 oneToMany 关系的实体。我想维护子实体的插入顺序。我为此使用了@orderColumn。代码: 父类: @Entity public class Order{ priva
在持久化和从数据库中检索时维护集合顺序的首选方法是什么? 我知道 @OrderBy 更像是一种内存中排序,只有当您按照您选择的列的顺序保留行时,它才可能用于检索。 假设我选择使用由数据库序列支持的列,
假设我们有实体 A 和 B 的 @OneToMany 关系。每个 A 可以有多个 B。 @Entity public class A{ @Id private long id; ...
有 3 个实体 群组 @Entity @Table(name = "`group`") public class Group implements Serializable { @Id
我想使用 @OrderColumn 更新现有模型。因为表中已经存在数据,所以我想将其设为可为空,这是默认值。 @ManyToMany(fetch = FetchType.EAGER) @OrderCo
我在 Hibernate 4.2.5 中使用 JPA 2.0。我有到相同实体类型的双向映射。 @OneToMany(mappedBy = "parent", cascade = { CascadeTy
关于 m-n 关系的一般建议是使用 Set 而不是 List,因为它为某些操作提供了更好的性能。 我试图将它与注释 @OrderColumn(name = "position") 结合起来。我使用它所
我有一个实体映射如下: @Entity @Table(name = "Groups") @IdClass(value = GroupId.class) public class Group imple
嗨,我正在尝试做与文档中相同的事情 http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch07.html#d5e5275 为什么会这样
我在我的实体之一中定义了以下集合: @ElementCollection(targetClass = Role.class) @CollectionTable(name = "user_roles",
我想在我的 OrderColumn 表中添加一个 NOT NULL 约束。使用约束运行我的代码时出现约束违规错误。在没有约束的情况下运行,我发现该行首先在没有 OrderColumn 的情况下插入,然
我正在尝试使用 @OrderColumn使用 Hibernate 3.5 进行注释 @OneToMany(mappedBy = "parent",fetch=FetchType.EAGER, casc
我有一个 productJob 表和一个 quadrat 表。每个样方都可以安装在许多 productJob 上,并且每个 productJob 可以有 1 到 4 个相同或不同类型的 quadrat
我正在使用 Hibernate 的 @OrderColumn 注释对我的数据库中的列表进行排序。它正确地生成数据库表中的列来存储索引,并且最初也存储正确的索引。 但是当我尝试更改列表中的顺序然后使用
我有以下实体。 @Entity public class Shop { @OneToMany( cascade = { CascadeType.PERSIST, CascadeType.MER
我的示例代码: public class A { @OneToMany @OrderColumn(name = "ORDER") private List bList; ... } publ
我是一名优秀的程序员,十分优秀!