这是我的JPA2 / Hibernate定义:
Code: @Column(nullable = false) private boolean enabled;
在MySql中,此列解析为bit(1)数据类型- 不适用于我。对于遗留问题,我需要将布尔值映射到tinyint而不是一点点。但是我看不到更改默认数据类型的可能性。有没有?
试试吧NumericBooleanType。由于某种原因,它没有声明的简短类型名称,因此您必须使用:
NumericBooleanType
@Column(nullable = false) @Type(type = "org.hibernate.type.NumericBooleanType") private boolean enabled;
这确实映射为INTEGER类型,但可能与TINYINT一起正常工作。
UPDATE:org.hibernate.type.NumericBooleanType不会 不会 在一些RDBMS与TINYINT工作。将数据库列类型切换为INTEGER。或根据需要使用其他Java @Type值或columnDefinition。
org.hibernate.type.NumericBooleanType
在此示例中,Dude的答案@Column(nullable = false, columnDefinition = "TINYINT(1)")将有效,而无需任何数据库更改。
@Column(nullable = false, columnDefinition = "TINYINT(1)")