用户登录
用户注册

分享至

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

  • 作者: 大思胸
  • 来源: 51数据库
  • 2022-10-21

问题描述

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

软件
前端设计
程序设计
Java相关