sql >> Database >  >> RDS >> Mysql

Zet JPA, MySQL en TinyInt(1) in de slaapstand voor Boolean in plaats van bit of char

@Type-annotatie is een Hibernate-annotatie.

In volledige JPA2 (met Hibernate 3.6+ ), is de manier om een ​​Booleaans veld toe te wijzen aan een TINYINT(1) SQL-type in plaats van BIT(1), door het kenmerk columnDefinition te gebruiken.

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

nb:lengte-attribuut lijkt in dit geval geen effect te hebben, dan gebruiken we (1) syntaxis.

Met Sluimerstand 4.0+ , dit soort syntaxis kan een runtime-fout veroorzaken zoals deze:

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

Het lijkt erop dat in dit geval de enige manier is om tinyInt1isBit=false te gebruiken in de MySQL-gegevensbronverbindingsreeks als volgt:

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

Trouwens, je kunt het lengte-attribuut nu als volgt gebruiken:

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


  1. Fout:de methode of bewerking is niet geïmplementeerd. tijdens het steigeren van MYSQL-database

  2. Auto-increment wordt niet gereset in MySQL

  3. Is het veilig om gebruikersnamen en wachtwoorden in de database op te slaan?

  4. Inner Join laravel 5.2 "