我的模型包含一个枚举,它由JPA映射到int我的mysql数据库上的一列。
int
mysql具有本机enum类型,使用起来会更方便。
enum
如何配置JPA以使用这种类型?
@Entity public class User extends Model { public enum Role { User, Moderator, Admin, } public Role role; }
没有对枚举AFAIK的内置支持,但是也许您可以尝试以下解决方法(我从未尝试过测试过):
@Entity public class User extends Model { public enum Role { User, Moderator, Admin, } @Enumerated(EnumType.STRING) @Column(columnDefinition = "ENUM('User', 'Moderator', 'Admin')") public Role role; }
您可以使用EnumType.STRING将值存储为String在数据库中。 但是使用本机ENUM要求您使用@Column批注定义columnDefinition ,这需要将所有角色都编码在那里。在这里重复。