我的模型包含一个枚举,它由JPA映射到我的mysql数据库的int
列。
mysql具有本机enum
类型,使用起来会更方便。
如何配置JPA以使用此类型?
@Entity
public class User extends Model {
public enum Role {
User,
Moderator,
Admin,
}
public Role role;
}
答案 0 :(得分:7)
没有内置支持枚举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,你需要在那里对所有角色进行编码,你知道吗?在这里重复。