我如何使用Hibernate获取上次插入的ID [英] How can I get last inserted id using Hibernate

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

问题描述

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



搜寻后:

  Long lastId =((Long) .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(); 

不要忘记导入:


import java.math.BigInteger;


解决方案

很清楚。它正在返回 BigInteger 而不是 long



您必须将其分配给< a href =http://docs.oracle.com/javase/7/docs/api/java/math/class-use/BigInteger.html =noreferrer> BigInteger 。并获得 longValue() 从它。


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天全站免登陆