I have the class Person
mapped with annotations with enum Sex
reffering to the sex if is male or female. Let's see:
@Entity
@Table(name = "PERSON")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Enumerated(EnumType.STRING)
@Column(name = "SEX")
private Sex sex;
private enum Sex {
M,
F;
}
// Getters, setters & constructors
}
When I test getting all the rows from the MySQL database, it works and the mapping is correct.
The database is already predefined, here is the column's definition:
`SEX` enum('M','F') NOT NULL
However the error occurs when I configure Hibernate with hibernate.hbm2ddl.auto=validate
:
found [enum (Types#CHAR)], but expecting [varchar(255) (Types#VARCHAR)]
The error is a bit different (expecting [integer (Types#INTEGER)]
) happend when I use EnumType.ORDINAL
or no @Enumerated
at all.
What do I do wrong?