Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hibernate JPA, MySQL und TinyInt(1) für Boolean statt Bit oder Char

@Type-Anmerkung ist eine Hibernate-Anmerkung.

In vollem JPA2 (mit Hibernate 3.6+ ), besteht die Möglichkeit, ein boolesches Feld einem TINYINT(1)-SQL-Typ anstelle von BIT(1) zuzuordnen, darin, das columnDefinition-Attribut zu verwenden.

@Column(nullable = false, columnDefinition = "TINYINT(1)")
private boolean enabled;

nb:Längenattribut scheint in diesem Fall keine Wirkung zu haben, dann verwenden wir (1) Syntax.

Mit Ruhezustand 4.0+ , kann diese Art von Syntax einen Laufzeitfehler wie diesen verursachen:

Wrong column type Found: bit, expected: TINYINT(1)

Es scheint, dass Sie in diesem Fall nur tinyInt1isBit=false verwenden können in der Verbindungszeichenfolge der MySQL-Datenquelle wie folgt:

jdbc:mysql://server_host:3306/database?tinyInt1isBit=false

Übrigens können Sie das Längenattribut jetzt so verwenden:

@Column(nullable = false, columnDefinition = "TINYINT", length = 1)
private boolean enabled;