我想在Hibernate中获取最后插入的值的id.
搜索后:
Long lastId = ((Long) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();
Run Code Online (Sandbox Code Playgroud)
但是下面的代码给了我这个错误:
java.lang.ClassCastException:java.math.BigInteger无法强制转换为java.lang.Long
请分享你的想法!
解
Long lastId = ((BigInteger) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();
Run Code Online (Sandbox Code Playgroud)
别忘了导入:
import java.math.BigInteger;
我正在使用Spring MVC + Hibernate
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
// save
public <T> int save(T entity) throws DataAccessException {
Session session = sessionFactory.getCurrentSession();
session.save(entity);
}
Run Code Online (Sandbox Code Playgroud)
作为新记录保存,生成的新主键在自动增量(db.MySQL)中生成.我想获得并返回与上述方法相关的新的自动递增值.
告诉我 !