0

私が見てきたことIteratorから、Hibernate から SQL 検索結果にアクセスするために使用する必要があります。

しかし、たとえば、単一のレコード結果しかない場合:

 select * from customers where id = 1;

イテレータの使用を避ける方法はありますか?

4

4 に答える 4

0

を使用している場合は、HQL代わりに使用することをお勧めします。SQLHibernate

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 に答える
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 を返すため、単一行の場合は index を使用して取得できます

ListName.get(0);
または
、「uniqueResult();」を使用できます。

于 2013-01-08T07:31:02.700 に答える
0

org.hibernate.Query#uniqueResult()を試してください。ただし、その唯一oneまたはnoneレコードが返されることを確認してください。

于 2013-01-08T06:52:20.783 に答える