我可以将Play配置为使用mysql枚举而不是整数吗?

我的模型包含一个枚举,它由JPA映射到我的mysql数据库的int列。

mysql有一个本机enum类型,使用起来会更方便。

如何配置JPA以使用此类型?

 @Entity public class User extends Model { public enum Role { User, Moderator, Admin, } public Role role; } 

enum 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,你需要在那里对所有角色进行编码,你知道吗? 在这里重复。