我在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(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中列admin的列类型错误。找到:位,预期:整数
似乎Hibernate期待一个整数并且得到了一点。
这意味着您的注释现在是正确的:
但也许它已将数据库更新为Bit而不是整数,从而导致错误。
如果您确实需要TinyInt,则可以使用@TypeAND @Column,将其设置为TinyInt类型的Integer:
@Column
@Column(columnDefinition = "TINYINT") @Type(type = "org.hibernate.type.NumericBooleanType") public boolean admin = true;