我使用带有 Hibernate 的内存 Derby 数据库来创建表。我的测试使用 dbunit 来准备带有测试数据的数据库。
db.driverClass=org.apache.derby.jdbc.EmbeddedDriver
db.url=jdbc:derby:memory:myDb;create=true
hibernate.dialect=org.hibernate.dialect.DerbyDialect
hibernate.hbm2ddl.auto=create-drop
Hibernate 似乎创建了一个 smallint 列类型来存储布尔值。但 dbunit 无法转换此值。
Caused by: org.dbunit.dataset.datatype.TypeCastException: Unable to typecast value <true> of type <java.lang.String> to SMALLINT
让 Hibernate 创建一个布尔列(如果在 derby 中可用)或让 dbunit 将 java 布尔值写入 smallint 列的任何想法?
这解释了相同的问题,但似乎没有 Derby 的 DataTypeFactory 实现。http://old.nabble.com/Data-type-factory-for-Derby-database.-td25996976.html