0

我使用带有 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

4

1 回答 1

0

我不相信 Derby 目前提供真正的布尔数据类型,尽管正在努力提供一个,请参阅:https ://issues.apache.org/jira/browse/DERBY-4716 。支持这项工作的 Derby 版本预计“很快”会发布。

于 2010-12-06T16:37:55.320 回答