【发布时间】:2009-08-14 09:09:52
【问题描述】:
我正在使用 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>
在我的 Oracle 数据库中创建名为“MYTEMP_TEMP_ID_SEQ”的序列并在 Oracle 中正常工作。
现在当我尝试使用休眠插入记录时,它给了我以下错误
org.hibernate.id.IdentifierGenerationException:此 id 生成器生成长、整数、短或字符串
似乎当我的序列返回数字时,hibernate 将其视为 BigDecimal,而 hibernate 的序列生成器类仅考虑长、整数、短和字符串的值。
Hibernate 应该没有 BigDecimal 的问题。但我认为他们还没有为序列生成器实现 BigDecimal
谁能帮我解决这个问题?
谢谢。
【问题讨论】:
标签: oracle hibernate numbers bigdecimal