有没有办法在不使用迭代器的情况下检索SQL结果? (使用休眠)

时间:2013-02-14 01:07:54

标签: hibernate

我有一个返回多个记录的HQL。

e.g。

select * from employees where surname like 'A%' order by employee_id

如何在不迭代列表的情况下访问第3条记录中的第3个字段?我在网上搜索但空手而归。

我知道get函数,但列表是一个对象列表(即不是特定的类)所以我不能使用类似的东西:

myList.get(2).getSurname();

感谢

1 个答案:

答案 0 :(得分:0)

如果您有一个列表,那么您可以使用list.get(2)从中获取第三个项目,就像在任何地方一样。如果您执行了Query.iterate()之类的操作,那么您就是故意要求按需加载结果而不是预先加载结果,并且您会遇到这样做的后果。如果您在调用next()几次时遇到问题,请修复查询的order by子句以将该记录放在第一位。否则,请使用Query.list(),它会将查询的整个结果作为List一次性加载到内存中。

至于第三个字段,当你使用HQL时,你正在加载对象,而不是字段,所以以这种方式谈论字段并没有任何意义。