0

从我所见,我需要使用Iterator从 Hibernate 访问 SQL 搜索结果。

但是如果我只有一个记录结果,例如:

 select * from customers where id = 1;

有没有办法避免使用迭代器?

4

4 回答 4

0

尝试org.hibernate.Query#uniqueResult(),但确保其唯一onenone记录返回。

于 2013-01-08T06:52:20.783 回答
0

您可以使用uniqueResult(). 这将返回一个对象(如果找到多个对象,则会引发异常。

例子:

String hql = "from User user where user.id = 1";
User user = (User) session.createQuery(hql).uniqueResult();
于 2013-01-08T06:54:21.550 回答
0

Hibernate 总是返回 List 所以对于单行你可以使用索引来获取它

ListName.get(0);
或者
你可以使用'uniqueResult();'

于 2013-01-08T07:31:02.700 回答
0

最好使用HQL而不是SQL使用Hibernate.

HQL查询将是:

Query query = session.createQuery("from User user where user.id = :id");
query.setParameter("id", 1);
return (User) query.uniqueResult();

另一种方法是使用 的CriteriaAPI Hibernate,因此查询将是:

Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("id", 1));
return (User) criteria.uniqueResult();
于 2013-01-08T10:14:44.670 回答