我有一个在 Firebird 2.0 中运行的旧数据库,我需要将 SmallInt 列映射到一个布尔类型,当它SmallInt = 0
是False
时,SmallInt = 1
它是True
.
我还需要使用 Hibernate Annotations 来完成。
我正在使用休眠 3.6。
有小费吗?
提前致谢。
我有一个在 Firebird 2.0 中运行的旧数据库,我需要将 SmallInt 列映射到一个布尔类型,当它SmallInt = 0
是False
时,SmallInt = 1
它是True
.
我还需要使用 Hibernate Annotations 来完成。
我正在使用休眠 3.6。
有小费吗?
提前致谢。
再搜索一点后,我可以org.hibernate.type.NumericBooleanType
在http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/types.html#types-value-basic上找到这个休眠类型
我试图以这种方式进行映射:
@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;
现在这就像一个魅力。