说我有一个枚举:
public enum NotificationType {
Store("S"),
Employee("E"),
Department("D"),
All("A");
public String value;
NotificationType(String value) {
this.value = value;
}
}
我想在数据库中存储S
或E
而不是Store
或Employee
。目前,我已将其映射到实体中,如下所示:
@Enumerated(EnumType.STRING)
private NotificationType notificationType;
但如果可能的话,不确定如何得到我想要的东西。
答案 0 :(得分:4)
您可以声明自己的用户类型来执行字符串和枚举之间的转换,您可以在本文中找到更多信息:
http://javadata.blogspot.no/2011/07/hibernate-and-enum-handling.html
一个小注释UserType是Hibernate特有的。如果您只想使用JPA。你需要属性转换器。怎么做你可以在这里找到:
http://www.thoughts-on-java.org/jpa-21-type-converter-better-way-to/
还有一个关于Stackoverflow处理Atribute转换器的链接显示了这种情况的确切实现。 Is it possible to write a generic enum converter for JPA?