如何使用Hibernate获取最后插入的id

Moh*_*ali 11 java mysql hibernate struts2

我想在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;

Sur*_*tta 12

错误很清楚.它正在回归BigInteger而不是long

你必须将它分配给一个BigInteger.从中得到longValue().