我使用@Convert(converter = CoverConverter.class)
转换属性值,然后将其存储在数据库中,反之亦然。我必须在每个使用特定ENUM的地方声明这个注释。我们暂时将其称为TestENUM
。
但是这个特定的ENUM在超过100个地方使用,我不确定我的组中的其他开发人员会记得在使用此ENUM时添加此注释。
所以我想知道是否有一种方法可以直接以一种方式对ENUM进行注释,无论它在何处使用,它都会在被保存到数据库之前被转换,反之亦然,当通过JPA从数据库中提取时
例如:
@Convert(convert = true)
public enum TestENUM {}
答案 0 :(得分:2)
您应该能够创建转换器并使用autoApply属性:
如果autoApply元素指定为true,则持久性 提供者必须自动将转换器应用于所有映射 中所有实体的指定目标类型的属性 持久性单元,转换所属的属性除外 通过Convert annotation(或XML等价物)覆盖。
http://docs.oracle.com/javaee/7/api/index.html?javax/persistence/Convert.html
@Converter(autoApply = true)
public class MyEnumConverter implements Converter{
}