2009-11-26 16 views
9

Estoy trabajando en un proyecto que utiliza Java, MySql, Struts2 MVC e Hibernate. Intenté usar la declaración de límite en la consulta hql pero no funcionaba correctamente.¿Hibernate admite la declaración de límite en MySql?

Select t from table1 t where t.column1 = :someVal limit 0,5 

EDIT: Estoy usando esto como una namedQuery y llamar a este namedQuery usando JPA Plantilla

Esto funciona correctamente en MySQL, pero cuando me encontré con esto como una consulta HQL Esto devuelve todos los registros sin tener en cuenta para limitar la declaración . ¿Alguien ha enfrentado el mismo problema? ¡Cualquier ayuda apreciada!

Saludos, RDJ

Respuesta

1

uso Query.setMaxResults(..)

+0

estoy usando NamedQuery. ¿Pueden las funciones setFirstResult() y setMaxResults() trabajar con namedQuery? – Richie

+2

¿Por qué no intenta leer el javadoc, o abre el autocompletado en su IDE y lo ve? – Bozho

-1
List<Employee> dataList = null; 
    Query hQuery = null; 

    try { 
     // Getting Session 

     hSession = HibernateSessionFactory.getSession(); 
     hTransaction = hSession.beginTransaction(); 
     hQuery = hSession.getNamedQuery(query); 

        Iterator<Object> hIterator = paramMap.entrySet().iterator(); 

        while (hIterator.hasNext()) { 

    Map.Entry<String, Object> paramPair = (Map.Entry<String,Object>) hIterator.next();  

hQuery.setParameter(paramPair.getKey(), paramPair.getValue()); 

     } 

     hQuery.setFirstResult(1); 
     hQuery.setMaxResults(100); 

     System.out.println(hQuery); 
     dataList = hQuery.list(); 

     hTransaction.commit(); 

    } catch (Exception e) { 
     hTransaction.rollback(); 


    } finally { 
     try { 
      hSession.flush(); 
      HibernateSessionFactory.closeSession(); 
     } catch (Exception hExp) {} 
+1

Esto es solo un montón de código. Alguna explicación acerca de cómo esto ayuda al problema concreto del PO sería bueno – kolossus

+1

Puede encontrar dos métodos 'setFirstResult(), setMaxResults()' en la interfaz 'Query' que ayudan a obtener el registro en la paginación .. –

0

pienso, Si utilizamos criterios podemos especificar

Crietria c = session.createCriteria (Emp.class);
c.setFirstResult (0);
c.setMaxResult (5);
List list = c.list();

Aquí 0 y 5 funciona como límite de 0,5

Fuente: http://www.javatpoint.com/hcql