java - hibernate 。为什么从数据库查询的实体以随机顺序存储在集合中?

标签 java mysql hibernate

<分区>

我有一个 mysql 数据库,其中包含 4 个具有一对多关系的表。表的所​​有行都以正确的顺序存储,但是当我使用 Hibernate 查询数据时,我以随机顺序获取它。(在 Set 集合中)。有人遇到过这样的问题吗?

最佳答案

Set 并不是为了保持元素的插入顺序而设计的。
LinkedHashSet 是个异常(exception)。
但是 Hibernate 不使用此实现,因为您声明 OneToManySet 的关系,例如:

@OneToMany(...)
Set<MyEntity> entities;

要解决您的问题,请在 OneToMany 关系的映射中将您的 Set 替换为 List :

@OneToMany(...)
List<MyEntity> entities;

关于java - hibernate 。为什么从数据库查询的实体以随机顺序存储在集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577109/

相关文章:

mysql - 简单的 MySQL 查询从客户表中返回一个客户名称

java - 如何在 Spring Boot 中从单个 Controller 返回内容数据和页面名称

使用join语句的mysql查询错误

mysql - 如何从 VB/C# EF 代码中删除从属表中的记录?

java - 在 hibernate 中使用 native 查询进行内连接

hibernate - Grails: hibernate 和数据迁移

java - 使用 Spring boot 在 ConstraintValidator 中 Hibernate 验证对象

java - Flink 状态架构迁移

java - 如何处理 Selenium 中重复使用的元素(重复)

java - 我怎样才能在android代码中同时打开手电筒(闪光灯)和后置摄像头