hibernate - example - ¿Cómo usar los criterios de hibernación para devolver solo un elemento de un objeto en lugar de todo el objeto?
hibernate criteria join (6)
Creo que podrías hacer eso con Projections, algo así como
Criteria.forClass(bob.class.getName())
.add(Restrictions.gt("id", 10))
.setProjection(Projections.property("id"))
);
Estoy tratando de obtener solo la lista de id. De objeto bob por ejemplo en lugar de la lista de bob. Está bien con una solicitud HQL, pero yo sabría si es posible usar criterios?
Un ejemplo :
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();
Del mismo modo, también puedes:
Criteria criteria = session.createCriteria(bob.class);
criteria.add(Expression.gt("id", 10));
criteria.setProjection(Projections.property("id"));
criteria.addOrder(Order.asc("id"));
return criteria.list();
Otra opción (aunque un poco un hibernate-esque) es usar sql "en bruto", como este:
List<Long> myList = session.createSQLQuery("select single_column from table_name")
.addScalar("single_column", StandardBasicTypes.LONG).list();
Puedes hacer eso así
bob bb=null;
Criteria criteria = session.createCriteria(bob.class);
criteria.add(Restrictions.eq("id",id));
bb = (bob) criteria.uniqueResult();
como Restricciones puede agregar su condición
o setProjection (Projections.id ())