2010-04-29 32 views

Respuesta

8

vistazo a How do you do a limit query in HQL?

no se puede limitar una consulta escrita en HQL con HQL. Debe realizar una llamada a setMaxResults en el objeto Query, lo que supongo que le impedirá aplicar un límite en una subconsulta hql.

Esto le deja con la opción de

  • escritura como una consulta SQL o
  • tratando de encontrar otra manera de escribir la consulta HQL de manera que no es necesario un límite en una subconsulta .
+6

hay una tercera opción. Ejecuta 2 consultas HQL separadas donde los resultados de 1er serán alimentados al 2º usando Java. – cherouvim

+2

la solución de cherouvim dará lugar a problemas de atomicidad. – drinian

0

Si envía la consulta como SQLQuery y agrega su clase como entidad, puede usar limit, ya que la consulta se somete a sql. Sin embargo, debes usar la sintaxis sql.

String sql = "select * from Supplier limit 1"; 
SQLQuery query = session.createSQLQuery(sql); 
query.addEntity(Supplier.class); 
List results = query.list(); 

-> (también trabajando con subselects)

Cuestiones relacionadas