如果再次调用 Hibernate Query.list() 会怎样?

问题描述 投票:0回答:1

我有一些这样的代码(不是我制作的):

if (query.list() != null && !query.list().isEmpty())
    resultObj = (MyObject) query.list().get(0);

当它以这种方式调用

query.list()
三次时会发生什么? 它是否会联系数据库三次,或者在第一次之后是否会以某种方式阻止再次调用数据库?

java database hibernate
1个回答
0
投票

如果

query
是一个查询对象,那么 Hibernate 文档 here 状态

通过调用 list()、scroll() 或 iterate() 来执行查询。后续调用可以重新执行查询。然而,它的生命周期受到创建它的会话生命周期的限制。

所以我确实假设数据库被查询了三次。

但是什么阻止你将它保存在 if 之前的变量中呢?也会干净很多。

© www.soinside.com 2019 - 2024. All rights reserved.