gpt4 book ai didi

java - 关于 Hibernate Batchsize 排序

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:34 25 4
gpt4 key购买 nike

我是 Hibernate 新手,但我对 @Batchsize 注释的工作有疑问。我理解它是如何工作的,但我不明白它如何对实体 id 进行分组以供选择。例如 - 我有 2 个类(class):汽车和车轮。汽车有车轮列表,它必须是空的。我创建了 10 辆汽车 - 其中 5 辆有车轮列表,另外 5 辆没有。然后我运行简单的代码

    List<Car> cars = session.createQuery("from Car").list();
for (Car car : cars) {
List<Wheel> wheels = car.getWheels();
for (Wheel wheel : wheels) {
System.out.println(wheel.getTitle());
}
}

之后我在控制台中看到类似这样的内容:

Hibernate: 
select
wheels0_.car_id as car3_1_,
wheels0_.id as id1_,
wheels0_.id as id0_0_,
wheels0_.title as title0_0_
from
Wheel wheels0_
where
wheels0_.car_id in (
?, ?, ?, ?, ?
)
17:50:35,505 TRACE LongType:151 - binding '25' to parameter: 1<br>
17:50:35,505 TRACE LongType:151 - binding '18' to parameter: 2<br>
17:50:35,505 TRACE LongType:151 - binding '17' to parameter: 3<br>
17:50:35,506 TRACE LongType:151 - binding '20' to parameter: 4<br>
17:50:35,506 TRACE LongType:151 - binding '23' to parameter: 5<br>

但下次我会得到其他绑定(bind)。它可以是 1、15、23 等。但我误解了 - hibernate 如何为 IN 语句选择 id?为什么不按 ASC 或 DESC 排序(例如 - 1, 2, 3, 4, 5)?

最佳答案

这是汽车列表的填充顺序。如果你想按 id 升序排列,你可以这样做: List<Car> cars = session.createQuery("from Car order by id asc").list();

关于java - 关于 Hibernate Batchsize 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380461/

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