【发布时间】:2019-10-09 01:03:53
【问题描述】:
我有一个使用 MySQL 原生枚举值的 MySQL 表:
CREATE TABLE users (
id int NOT NULL AUTO_INCREMENT,
status enum('PENDING', 'ACTIVE', 'INACTIVE') NOT NULL
);
我想通过 JPA 在 Spring Boot 中访问它,所以我将它建模为具有枚举属性的实体。
public enum Status {
PENDING,
ACTIVE,
INACTIVE;
}
@Entity
@Table(name = "users")
public class User {
@Id
@Column
private int id;
@Column
@Enumerated(EnumType.STRING)
private Status status;
/* Getters, Setters,… */
}
当我启动我的应用程序时,ddl-auto 属性设置为validate 我预计架构验证会出错:
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [status] in table [users]; found [enum (Types#CHAR)], but expecting [varchar(255) (Types#VARCHAR)]
我必须在 JPA 中使用 MySQL 枚举做什么?
【问题讨论】:
标签: java mysql hibernate jpa spring-data-jpa