2014-01-10 58 views
0

我找到同樣的問題How to get last record from Mysql using Hibernate?但我沒有解決我的問題。我想使用Hibernate從MySQL獲得最後的記錄,這是我的代碼如何在NetBeans中使用Hibernate從Mysql獲取最後一條記錄?

公共類CabinetController實現控制器{

@Override 
public ModelAndView handleRequest(HttpServletRequest hsr, 
            HttpServletResponse hsr1) throws Exception { 
    ModelAndView mv = new ModelAndView("kabinet"); 
    String out = "Výpis uživatelů: "; 
    try { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
    List result = session.createQuery("from Kabinet ORDER BY id desc LIMIT 1").list(); 
     mv.addObject("kor", result); 
     session.getTransaction().commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    mv.addObject("message", out); 
    return mv; 
} 

resault是全表蒙山的所有記錄,但我只想要1最後一個記錄?

請幫幫我,這對我很重要!

回答

0

對於MySQL:

select * from Kabinet order by id DESC limit 1 

對於MSSQL:

select top 1 * from Kabinet order by id DESC 

對於Oracle:

select * from Kabinet where rownum<2 order by id DESC 
+0

我使用MySQL當我使用你的代碼的MySQL當我使用此查詢我我得到的只是表 – Orion

2

限制不會在工作HQL(Hibernate的V3 +)。

您應該使用MaxResults。

例如用列表:

List<Kabinet> result = session.createQuery("from Kabinet ORDER BY id DESC") 
          .setMaxResults(1) 
          .list(); 

例,沒有列表:

Kabinet result = (Kabinet) session.createQuery("from Kabinet ORDER BY id DESC") 
           .setMaxResults(1) 
           .uniqueResult(); 
+0

的頭得到這個exeption:javax.servlet.ServletException:javax.servlet.jsp.JspTagException:不知道如何遍歷提供的「items」< for each > – Orion

+0

示例已更新。 – bradleyfitz

相關問題