如何使用休眠条件仅返回对象的一个​​元素而不是整个对象?

时间: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/