【问题标题】:hibernate hbm2ddl boolean column typeCastException in dbunitdbunit 中的休眠 hbm2ddl 布尔列 typeCastException
【发布时间】:2010-12-06 15:00:44
【问题描述】:

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

【问题讨论】:

  • 我在 oracle 上也遇到了同样的问题,你有没有找到让 dbunit 根据底层 db 实现来解释布尔值的解决方案?

标签: hibernate exception casting derby dbunit


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 2023-04-06
    • 1970-01-01
    • 2011-04-13
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多