我在Firebird 2.0中运行了一个旧数据库,我需要将SmallInt列映射到布尔类型,当SmallInt = 0
为False
时,以及SmallInt = 1
时True
。
我还需要使用Hibernate Annotations来完成。
我正在使用Hibernate 3.6。
任何提示?
提前致谢。
答案 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;
现在这就像一个魅力。