gpt4 book ai didi

java - EclipseLink 存储的有序实体列表是否不正确?

转载 作者:行者123 更新时间:2023-12-02 06:04:31 25 4
gpt4 key购买 nike

我有一个名为 Test1 的实体,它有 2 个字段 id 和 name。

我将大约 1000 个实体 Test1 放入 ArrayList 中,第一个实体的 id = 1,第二个实体的 id = 2,依此类推...到 1000。

我使用 EclipseLink 2.4 提供程序来通信 Postgresql 数据库。

当我使用以下代码将列表存储到数据库中时:

EntityManager em;
List<Test1> list = new ArrayList<Test1>();
//populate data into list
for(Test1 test1 : list){
em.merge(test1);
}

当我检查数据库时,行未按预期排序。第一行没有 id = 1,第二行没有 id = 2,依此类推...

EclipseLink 有什么问题或者我弄错了?

最佳答案

根据您所写的内容,您无法确定谁对此负责:您的 DB/DB 客户端(当您检查订单时)或 EcliplseLink。无论如何,如果您希望 JPA 操作按一定顺序进行,则应该使用 EntityManager.flush() 来访问数据库,否则持久性提供程序可以决定何时以及以何种顺序刷新其查询缓存。另外,如果您希望在客户端中按特定顺序,则应该对结果进行排序,因为某些数据库(如 MySQL)不保证行按照插入顺序返回。

关于java - EclipseLink 存储的有序实体列表是否不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com