Mysql
 sql >> база данни >  >> RDS >> Mysql

Хибернация на JPA, MySQL и TinyInt(1) за Boolean вместо bit или char

@Type анотацията е анотация в режим на хибернация.

Пълен JPA2 (с Hibernate 3.6+ ), начинът за съпоставяне на булево поле към TINYINT(1) SQL тип вместо BIT(1), е да използвате атрибута columnDefinition.

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

nb:атрибутът дължина изглежда няма ефект в този случай, тогава използваме (1) синтаксис.

СHibernate 4.0+ , този вид синтаксис може да причини грешка по време на изпълнение като тази:

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

Изглежда, че в този случай единственият ви начин е да използвате tinyInt1isBit=false в низа за връзка с източник на данни на MySQL, както следва:

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

Между другото, вече можете да използвате атрибута дължина по следния начин:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Как да получите резултати от търсенето с точна релевантност

  2. Иконата на Wampserver не става зелена напълно, mysql услугите не се стартират?

  3. Как да използвам SUBSTRING() в MySQL

  4. Какво е значението на цитирани знаци с силен акцент (известен още като backtick) в MySQL?

  5. Typo3 V6:Как да създадете контейнер за елемент на съдържание? (без телевизор)