删除字段的数据类型应该是什么?

时间:2012-02-01 06:40:22

标签: java hibernate spring

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

我正在使用hibernate 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

  

你们任何人都可以告诉我们如何解决这个问题吗?

1 个答案:

答案 0 :(得分: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;