В моей текущей конфигурации Hibernate 4.1 + JPA 2 + Spring 3.1.1 сгенерированный оператор create table
не учитывает аннотацию JSR 303 @javax.validation.constraints.NotNull
.
Объявление класса:
@Entity
public class MenuItem implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
@NotNull // <--- JSR 303 constraint annotation
private String description;
...
}
Сгенерированный оператор create table
:
create table menu_item (
id bigint generated by default as identity,
description varchar(255), // <--- should be not null
price binary(255),
title varchar(255),
primary key (id)
)
Однако, если я добавлю аннотацию JPA @javax.persistence.Column
, оператор create table
будет сгенерирован правильно.
Объявление класса:
@Entity
public class MenuItem implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
@NotNull // <--- JSR 303 constraint annotation
@Column(nullable=false) // <--- JPA annotation
private String description;
...
}
Сгенерированный оператор create table
:
create table menu_item (
id bigint generated by default as identity,
description varchar(255) not null, // <--- generated not null
price binary(255),
title varchar(255),
primary key (id)
)
Можно ли настроить Hibernate 4.1 + JPA 2 + Spring 3.1.1 для генерации схемы БД только из аннотаций JSR 303?