如何使用 Hibernate 获取最后插入的 id [英] How can I get last inserted id using Hibernate

查看:26
本文介绍了如何使用 Hibernate 获取最后插入的 id的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

这篇关于如何使用 Hibernate 获取最后插入的 id的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆