簡體   English   中英

獲取休眠中實體的最后一個ID

[英]Get last id of an entity in hibernate

我需要一種方法來獲取數據庫中實體的最后一個ID,例如說

產品實體:

我嘗試這樣做,但不起作用:

 public int lastInsertedId() {
        try {
            if (!session.isOpen())
                session = DatabaseUtil.getSessionFactory().openSession();
            session.beginTransaction();
            Query query = session.createSQLQuery("select last_value from purchase_idpurchase_seq ");

            int lastid = query.getFirstResult();

            session.getTransaction().commit();
            session.close();
            return lastid;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }


    }

經過一番谷歌搜索,我得到了解決方案:

 public int lastInsertedId() {
        try {
            if (!session.isOpen())
                session = DatabaseUtil.getSessionFactory().openSession();
            session.beginTransaction();
            Criteria c = session.createCriteria(Purchase.class);
            c.addOrder(Order.desc("id"));
            c.setMaxResults(1);
            int id = (int) ((Purchase) c.uniqueResult()).getIdPurchase();
            session.getTransaction().commit();
            session.close();
            return id;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }


    }

嘗試使用如下形式:

   String hql = "from purchase_idpurchase_seq";
   Query query = session.createQuery(hql);
   List<purchase_idpurchase_seq> results = query.list();

並獲取last_value的值, last_value嘗試以下操作:

  String last_value = results.getLast_value(); //  if getLast_value return int use int.

我想您有一個實體purchase_idpurchase_seq

嘗試看看這個網站

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM