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

Как да анотирате полето за автоматично нарастване на MYSQL с анотации на JPA

За да използвате MySQL AUTO_INCREMENT колона, трябва да използвате IDENTITY стратегия:

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;

Което ще получите, когато използвате AUTO с MySQL:

@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

Което всъщност е еквивалентно на

@Id @GeneratedValue
private Long id;

С други думи, вашето картографиране трябва да работи. Но Hibernate трябва да пропусне id колона в SQL инструкцията за вмъкване и не е така. Някъде трябва да има някакво несъответствие.

Вие посочихте ли MySQL диалект във вашата конфигурация на Hibernate (вероятно MySQL5InnoDBDialect или MySQL5Dialect в зависимост от двигателя, който използвате)?

Освен това, кой създаде таблицата? Можете ли да покажете съответния DDL?

Последващи действия: Не мога да възпроизве проблема ти. Използване на вашия код обект и вашите DDL, Hibernate генерира следния (очакван) SQL с MySQL:

insert 
into
    Operator
    (active, password, username) 
values
    (?, ?, ?)

Имайте предвид, че id колоната отсъства в горното изявление, както се очаква.

За да обобщим, вашият код, дефиницията на таблицата и диалектът са правилни и последователни, трябва да работи. Ако не е за вас, може би нещо не е синхронизирано (направете чиста компилация, проверете двукратно директорията за компилиране и т.н.) или нещо друго просто не е наред (проверете регистрационните файлове за нещо подозрително).

Относно диалекта, единственият разлика между MySQL5Dialect или MySQL5InnoDBDialect е, че по-късното добавя ENGINE=InnoDB към обектите на таблицата при генериране на DDL. Използването на едното или другото не променя генерирания SQL.



  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 mysqldump файл?

  2. Как да намерите местоположението на базата данни на MySQL на вашия твърд диск?

  3. Как да се свържете с MySQL сървър след инсталиране на XAMPP на Mac OS

  4. Основно административно сравнение между Oracle, MSSQL, MySQL, PostgreSQL

  5. Използвайте MySQL релационни бази данни във Fedora 13