I have a MySQL table using MySQL-native enum values:
CREATE TABLE users (
id int NOT NULL AUTO_INCREMENT,
status enum('PENDING', 'ACTIVE', 'INACTIVE') NOT NULL
);
I want to access this in Spring Boot through JPA, so I modelled it as an entity with an enum attribute.
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,… */
}
When I start my application I experience with ddl-auto
property set to validate
I expect an error with schema validation:
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)]
What do I have to do work in JPA with MySQL enums?