我在 MySQL 表 (TINYINT(1)) 中有一个 BOOLEAN 类型,并且我试图在实体中映射布尔字段,但这会生成异常:
org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: boolean
我将实体中的字段更改为字节并进行相应的更改,使其充当布尔值,我得到:
org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: tinyint
我尝试使用@Type
字段注释:
@Type(type = "org.hibernate.type.NumericBooleanType")
但我得到:
org.hibernate.HibernateException: Wrong column type in maegul.users for column admin. Found: bit, expected: integer
从我在这里读到的:
org.hibernate.HibernateException:maegul.users 中列管理的列类型错误。找到:位,预期:整数
看来 Hibernate 需要一个整数并且得到了一点。
这意味着您的注释现在是正确的:
@Type(type = "org.hibernate.type.NumericBooleanType")
但也许它已更新您的数据库以设置为位而不是整数,因此会出现错误。
如果你确实需要 TinyInt,你可以使用@Type
AND @Column
,设置为 Integer,类型为 TinyInt :
@Column(columnDefinition = "TINYINT")
@Type(type = "org.hibernate.type.NumericBooleanType")
public boolean admin = true;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)