如何使用Hibernate注释将Firebird Smallint映射到布尔值?

时间:2012-07-31 14:00:51

标签: hibernate firebird hibernate-annotations

我在Firebird 2.0中运行了一个旧数据库,我需要将SmallInt列映射到布尔类型,当SmallInt = 0False时,以及SmallInt = 1True

我还需要使用Hibernate Annotations来完成。

我正在使用Hibernate 3.6。

任何提示?

提前致谢。

1 个答案:

答案 0 :(得分:5)

在搜索了一下之后,我可以在http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/types.html#types-value-basic找到这个休眠类型org.hibernate.type.NumericBooleanType

我试图用这种方式绘图:

@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean field;

但是,这不起作用,因为Hibernate抛出了这个异常:

org.hibernate.HibernateException: Wrong column type in %TABLE_NAME% for column %COLUMN_NAME%. Found: smallint, expected: integer

所以,我试图强制这个列的定义,以这种方式映射:

@Column(columnDefinition = "SMALLINT")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean field;

现在这就像一个魅力。