我有一个通过 JAXB 生成的类,我试图将其用作 Hibernate 中的实体。有一些数字字段被定义为 Java BigIntegers。无论我在 DB2 中如何定义该列,Hibernate 都会抱怨以下一些变化:
错误的列类型....对于列 MY_COLUMN 找到:十进制,预期:数字(19,2)。
我尝试过 DB2 bigint,我尝试过数字 (19,2) 等。
我让 Hibernate 选择方言。它正在选择 DB2 方言。如何在 DB2 中定义列,以便 Hibernate 允许我使用它来存储 Java BigInteger?
如果我在 Hibernate 中将其定义为 big_integer,在 DB2 中将其定义为 bigint,我会得到:
错误的列类型....对于列 MY_COLUMN 找到:bigint,预期:数字(19,2)
更新
所以我将 hibernate.hbm2ddl.auto 从 validate 更改为 create 并让 Hibernate 自己创建模式。从日志中我可以看到正在使用数字(19,2)的定义生成创建表语句。在 DB2 中,一旦创建了表,定义就是十进制 (19,2)。该应用程序启动正常。
然后我关闭了应用程序,重新编译设置 hibernate.hbm2ddl.auto 进行验证,然后重新启动。
休眠错误:发现:十进制,预期:数字(19,2)
所以 Hibernate 不能验证它自己创建的模式?