Java将可序列化的对象转换(其他对象)
我使用Session.save()
方法(在Hibernate中)来保存我的实体对象,该对象返回java.io.Serializable
类型的对象。Java将可序列化的对象转换(其他对象)
返回的值是实体的生成主键。
生成的主键类型为long
(或bigint)。
问题是:我如何将返回的值转换或转换为long
?
Serializable result = session.save(myEntityObject);
//This line of code fails.
long r = (long)result;
尝试铸造的结果(因为它不是一个原始的),以代替Long
的long
。
Long r = (Long)result;
long longValue = r.longValue();
谢谢,它的工作:) –
@AliRezaKhoshsirat:不客气。 –
尝试使用long r = ((Long) result).getLong()
代替。
你应该指定的错误,你所得到的类型!反正这应该工作..
long r = Long.valueOf(result)
您是否尝试过使用调试器,并打破在该行看到什么“结果”是什么?
这可能是BigDecimal的或长或...
另外,不能你只需要调用主键getter方法的对象 - 我会希望它会通过这一点来设定。
HTH, 克里斯
有关主键的很好的一点。 –
你试过'长R =((长)的结果).getLong()'? –