我正在使用 oracle 11g、Java(struts2) 和 Hibernate 开发应用程序。
我有一个名为 mytemp 的表,其列 mytemp_id 的类型为 NUMBER(22,0)。
在我的 mytemp.hbm.xml 文件中,id 如下所示
<id name="mytempId" type="big_decimal">
<column name="MYTEMP_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">MYTEMP_TEMP_ID_SEQ</param>
</generator>
</id>
在我的名为“MYTEMP_TEMP_ID_SEQ”的 Oracle 数据库序列中,创建并在 Oracle 中正常工作。
现在,当我尝试使用休眠插入记录时,它给了我以下错误
org.hibernate.id.IdentifierGenerationException: 这个 id 生成器生成 long、integer、short 或 string
似乎当我的序列返回数字时,休眠将其视为 BigDecimal,而休眠的序列生成器类仅考虑长、整数、短和字符串的值。
Hibernate 不应该有 BigDecimal 的问题。但我认为他们还没有为序列生成器实现 BigDecimal
任何人都可以帮我解决问题吗?
谢谢。