2009-11-26 29 views
9

Tôi đang làm việc trên một dự án sử dụng Java, MySql, Struts2 MVC và Hibernate. Tôi đã thử bằng cách sử dụng tuyên bố giới hạn trong truy vấn hql nhưng nó không hoạt động đúng.Hibernate có hỗ trợ câu lệnh giới hạn trong MySql không?

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

EDIT: Tôi đang sử dụng điều này như một namedQuery và gọi namedQuery này sử dụng JPA Template

này hoạt động một cách chính xác trong MySql nhưng khi tôi chạy này như một truy vấn HQL này trả về tất cả các hồ sơ mà không quan tâm để hạn chế phát biểu . Có ai phải đối mặt với cùng một vấn đề? Bất kỳ trợ giúp đánh giá cao !!

Kính trọng, RDJ

Trả lời

1

sử dụng Query.setMaxResults(..)

+0

Tôi đang sử dụng NamedQuery. Có thể các hàm setFirstResult() và setMaxResults() làm việc với namedQuery không ?? – Richie

+2

Tại sao bạn không thử đọc javadoc, hoặc mở tự động hoàn thành trong IDE của bạn và xem? – 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

Đây chỉ là một loạt mã. Một số giải thích về cách thức này giúp vấn đề cụ thể của OP sẽ là tốt đẹp – kolossus

+1

bạn có thể tìm thấy hai phương thức 'setFirstResult(), setMaxResults()' trong giao diện 'Query' giúp lấy bản ghi trong phân trang .. –

0

Tôi nghĩ rằng, Nếu chúng ta sử dụng Tiêu chuẩn chúng ta có thể xác định

Crietria c = session.createCriteria (Emp.class);
c.setFirstResult (0);
c.setMaxResult (5);
Danh sách danh sách = c.list();

đây 0 và 5 công trình như giới hạn 0,5

Nguồn: http://www.javatpoint.com/hcql

Các vấn đề liên quan