我使用内存Derby数据库和Hibernate来创建表。我的测试使用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 boolean写入smallint列?
这解释了同样的问题,但似乎没有针对Derby的DataTypeFactory实现。 http://old.nabble.com/Data-type-factory-for-Derby-database.-td25996976.html
答案 0 :(得分:0)
我不相信Derby中当前可以使用真正的布尔数据类型,尽管正在进行工作以提供一个,请参阅:https://issues.apache.org/jira/browse/DERBY-4716。预计将很快发布支持该工作的Derby版本。