我有以下类(class):
@Entity
class User
{
@Id @GeneratedValue
private long id;
private Language lang; //Language is an Enum of all languages
private Role role; //Role is an enum of user roles like admin, super-admin, etc
}
我的问题是:
1) 我应该如何设计数据库列以使用枚举类型?我应该使用 varchar 还是任何其他类型? (我使用的是MySQL)
2)这个类可以开箱即用,还是我需要做任何额外的事情才能使其与枚举一起使用?我需要能够读取和写入枚举值(例如用户可以更改他的语言)
最佳答案
您可以使用 VARCHAR
类型,并在 @Entity
类中使用 @Enumerated
和 @ 标记枚举成员列
注释(指向枚举成员将绑定(bind)到哪个数据库表列)。
例如:
@Column(columnDefinition = "enum('BULGARIA','UNITED KINGDOM')")
@Enumerated(EnumType.STRING)
private Language lang;
@Column(columnDefinition = "enum('ADMIN','USER')")
@Enumerated(EnumType.STRING)
private Role role;
关于java - 如何在 Hibernate @Entity 类中使用 Enum 成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042903/