如何使用休眠条件仅返回对象的一个元素而不是整个对象?
时间:2020-03-05 18:52:05 来源:igfitidea点击:
我试图例如仅获取对象bob的ID列表,而不是bob的列表。可以使用HQL请求,但是我想知道是否可以使用条件?
一个例子 :
final StringBuilder hql = new StringBuilder(); hql.append( "select bob.id from " ) .append( bob.class.getName() ).append( " bob " ) .append( "where bob.id > 10"); final Query query = session.createQuery( hql.toString() ); return query.list();
解决方案
回答
我认为我们可以使用Projections做到这一点,例如
Criteria.forClass(bob.class.getName()) .add(Restrictions.gt("id", 10)) .setProjection(Projections.property("id")) );
回答
或者setProjection(Projections.id())
回答
http://www.devarticles.com/c/a/Java/Hibernate-Criteria-Queries-in-Depth/2/