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

2022-01-16 00:00:00 mysql java Hibernate struts2

我想在 Hibernate 中获取最后插入的值的 id.

搜索后:

Long lastId = ((Long) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();

但是下面的代码给了我这个错误:

<块引用>

java.lang.ClassCastException: java.math.BigInteger 无法转换为 java.lang.Long

请分享你的想法!

解决方案

Long lastId = ((BigInteger) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();

别忘了导入:

<块引用>

导入 java.math.BigInteger;

解决方案

错误很明显.它正在返回 BigInteger 而不是 long

您必须将其分配给 大整数.并从中获取 longValue().p>

I want to fetch the last inserted value's id in Hibernate.

After search:

Long lastId = ((Long) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();

But the following code gives me this error:

java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

Please share your thoughts!

Solution

Long lastId = ((BigInteger) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();

Don't forget to import:

import java.math.BigInteger;

解决方案

Error is pretty clear. It's returning BigInteger and not long

You have to assign it to a BigInteger. And get longValue() from it.

相关文章