有没有办法直接将@Convert声明为ENUM

时间:2015-12-18 09:07:34

标签: java jpa

我使用@Convert(converter = CoverConverter.class)转换属性值,然后将其存储在数据库中,反之亦然。我必须在每个使用特定ENUM的地方声明这个注释。我们暂时将其称为TestENUM

但是这个特定的ENUM在超过100个地方使用,我不确定我的组中的其他开发人员会记得在使用此ENUM时添加此注释。

所以我想知道是否有一种方法可以直接以一种方式对ENUM进行注释,无论它在何处使用,它都会在被保存到数据库之前被转换,反之亦然,当通过JPA从数据库中提取时

例如:

@Convert(convert = true)
public enum TestENUM {}

1 个答案:

答案 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{

}