从我看到的情况来看,我需要使用Iterator
来访问来自Hibernate的SQL搜索结果。
但是如果我只有一个记录结果,例如:
select * from customers where id = 1;
有没有办法避免使用Iterator?
答案 0 :(得分:0)
尝试org.hibernate.Query#uniqueResult(),但请确保其唯一的one
或none
记录返回。
答案 1 :(得分:0)
您可以使用uniqueResult()
。这将返回一个对象(如果找到的不是一个,则抛出异常。
示例:
String hql = "from User user where user.id = 1";
User user = (User) session.createQuery(hql).uniqueResult();
答案 2 :(得分:0)
Hibernate总是返回List,因此对于单行,您可以使用索引
来获取它 ListName.get(0);
或者你可以使用'uniqueResult();'
答案 3 :(得分:0)
如果您使用HQL
,最好使用SQL
代替Hibernate
。
HQL
查询将是:
Query query = session.createQuery("from User user where user.id = :id");
query.setParameter("id", 1);
return (User) query.uniqueResult();
另一种方法是使用Criteria
的{{1}} API,因此查询将是:
Hibernate