Я работаю над проектом, где я использую hibernate для выполнения операций CRUD. У меня есть модель пользователя, и я пытаюсь вставить информацию, но сохраняющий получаю эту ошибку(Hibernate Oracle не может вставить NULL) Как вставить автоматически сгенерированный идентификатор?
Hibernate: insert into APPUSER (dob, email, firstName, lastName, password) values (?, ?, ?, ?, ?)
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1400, SQLState: 23000
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ORA-01400: cannot insert NULL into ("MYAPP8785"."APPUSER"."ID")
Модель пользователя выглядит
@Entity
@Table(name="APPUSER")
public class AppUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Email
@Size(max = 50)
private String email;
@Column
private String dob;
@Column
private String firstName;
@Column
private String lastName;
@Column(name = "password", nullable = false)
private String password;
}
Hibernate свойства, такие как
properties.put("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
//properties.put("hibernate.current_session_context_class","thread");
properties.put("hibernate.hbm2ddl.auto","update");
properties.put("hibernate.show_sql","true");
Я под впечатление, что спящий режим будет автоматически генерировать идентификатор для меня и вставить их с использованием последовательности
Какую версию Oracle вы используете? –
Я использую oracle 11g – user3342812
Если вы хотите использовать последовательность для генерации id, вам нужно настроить это в своей аннотации (GenerationType.SEQUENCE). Oracle не поддерживает столбцы идентификации, поэтому ваша текущая конфигурация генерации идентификатора не влияет. – dunni