使用JPA存储枚举值
说我有一个枚举:
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;
但如果可能的话,不确定如何得到我想要的东西。
您可以声明自己的用户类型来执行字符串和枚举之间的转换,您可以在本文中找到更多信息:
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转换器的链接显示了这种情况的确切实现。 是否可以为JPA编写通用枚举转换器?