[英]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.