Я пытаюсь изучить Hibernate, поэтому я создал очень простой Java проект с одной таблицей. Я установил первичный ключ для автоматической генерации идентификатора с использованием стратегии = GenerationType.Auto. Как только таблица будет создана с помощью hibernate, я затем go в MySql верстак и попытаюсь заполнить таблицу. Я не предоставляю идентификатор, поскольку предполагаю, что он будет сгенерирован автоматически.
В этот момент я получаю сообщение об ошибке: поле не имеет значения по умолчанию.
Итак, я настроил значение по умолчанию, используя аннотации Hibernate, а затем снова запустите оператор SQL Insert, и на этот раз он сообщит мне: Дублирующая запись для первичного ключа
Поскольку я не указал первичный ключ, он использует значение по умолчанию, которое я догадка имеет смысл.
Я не понимаю, почему он не генерирует идентификатор автоматически.
То, что я пробовал: 1. Установить Global sql_mode = "" 2. Применить значение по умолчанию, используя Спящие аннотации.
package com.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class ERS_User_Role implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(columnDefinition = "int default 0")
private int user_role_id;
private String user_role_description;
public ERS_User_Role(int user_role_id, String user_role_description) {
super();
this.user_role_id = user_role_id;
this.user_role_description = user_role_description;
}
public int getUser_role_id() {
return user_role_id;
}
public void setUser_role_id(int user_role_id) {
this.user_role_id = user_role_id;
}
public String getUser_role_description() {
return user_role_description;
}
public void setUser_role_description(String user_role_description) {
this.user_role_description = user_role_description;
}
@Override
public String toString() {
return "ERS_User_Role [user_role_id=" + user_role_id + ", user_role_description=" + user_role_description + "]";
}
}
DELETE FROM ERS_USER_ROLE;
commit;
INSERT INTO ERS_USER_ROLE (USER_ROLE_DESCRIPTION) VALUES ('Employee');
INSERT INTO ERS_USER_ROLE (USER_ROLE_DESCRIPTION) VALUES ('Manager');
commit;