sql >> Database teknologi >  >> RDS >> Mysql

Dvale JPA, MySQL og TinyInt(1) for Boolean i stedet for bit eller char

@Type-annotering er en dvale-annotering.

I fuld JPA2 (med Hibernate 3.6+ ), måden at knytte et boolesk felt til en TINYINT(1) SQL-type i stedet for BIT(1), er at bruge attributten columnDefinition.

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

nb:længdeattribut ser ikke ud til at have nogen effekt i dette tilfælde, så bruger vi (1) syntaks.

Med Hibernate 4.0+ , denne slags syntaks kan forårsage en runtime fejl som denne :

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

Det ser ud til, at i dette tilfælde er din eneste måde at bruge tinyInt1isBit=false i MySQL-datakildeforbindelsesstrengen som denne :

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

Forresten kan du nu bruge længde-attributten sådan her :

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


  1. Tildel dynamisk filnavn til excel-forbindelsesstreng

  2. Datoforskel i MySQL for at beregne alder

  3. Er det muligt at forespørge i en kommasepareret kolonne for en bestemt værdi?

  4. MySQL - Sådan indsættes i flere tabeller med fremmednøgler