【问题标题】:What should be the data type of deleted fields?删除字段的数据类型应该是什么?
【发布时间】:2012-02-01 06:40:22
【问题描述】:

在设计数据库时,我使用了一个已删除的字段名称并将其用作布尔值。一切似乎都很好。

我使用的是休眠 3.6.9。所以我已经配置了 applicationContext

prop key="hibernate.query.substitutions">true=1 false=0

在我的 sessionFactory bean 中。所以当我保存我的对象时,它将我的布尔值转换为 1/0。 所以但问题是当我从数据库中检索对象时,我得到了

java.lang.ClassCastException: java.lang.Integer 无法转换为 java.lang.Boolean

谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: java hibernate spring


    【解决方案1】:

    我猜hibernate.query.substitutions 仅适用于查询,但不适用于实体。

    我会尝试实现将布尔值映射到 1 或 0 的自定义用户类型。然后使用该自定义用户类型来注释我的实体的布尔字段。

    @org.hibernate.annotations.Typ(type="com.example.Boolean01Type")
    private boolean deletes; 
    

    查看blog 以了解如何实现自定义类型的示例。 (我不是 100% 确定,但我记得在 hibernate 中有两个自定义类型的概念,一个比另一个更强大

    但一定要看看标准的自定义类型“yes_no”,它真的很接近你需要编写的类型。

     @org.hibernate.annotations.Type(type="yes_no")
     boolean myBoolean;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 2013-08-04
      • 2013-11-08
      • 2021-05-21
      • 2017-01-11
      • 2017-03-20
      • 1970-01-01
      相关资源
      最近更新 更多