Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jpa与枚举属性的关联,不是常量_Java_Jpa_Enums - Fatal编程技术网

Java Jpa与枚举属性的关联,不是常量

Java Jpa与枚举属性的关联,不是常量,java,jpa,enums,Java,Jpa,Enums,是否有方法将枚举属性而不是枚举常量绑定到Jpa列 我有这样一个枚举: public enum Type{ TYPE1("type1"), TYPE2("type2); private String enumValue; Type(String enumValue){ this.enumValue = enumValue; } public String getValue(){ return enumValue; } }

是否有方法将枚举属性而不是枚举常量绑定到Jpa列

我有这样一个枚举:

public enum Type{
   TYPE1("type1"),
   TYPE2("type2);

   private String enumValue;
   Type(String enumValue){
       this.enumValue = enumValue;
   }

   public String getValue(){
       return enumValue;
   }
}
public class TestEntity{    
    @Enumerated(EnumType.STRING)
    private Type type;   
}
像这样的实体:

public enum Type{
   TYPE1("type1"),
   TYPE2("type2);

   private String enumValue;
   Type(String enumValue){
       this.enumValue = enumValue;
   }

   public String getValue(){
       return enumValue;
   }
}
public class TestEntity{    
    @Enumerated(EnumType.STRING)
    private Type type;   
}
我的实体始终与枚举常量绑定,即TYPE1,而不是与enumValue绑定,即“TYPE1”。我找不到这样做的方法。我想知道的是,这甚至是JPA的可能


谢谢,

您可以使用hibernate专有技术(如果您使用hibernate)或者,如果您使用JPA2.1实现,则可以使用新的。下面是一个例子

@Convert(converter = TypeConverter.class)
private Type type;

@转换器
公共类TypeConverter实现AttributeConverter{
@凌驾
公共字符串convertToDatabaseColumn(类型属性){
返回属性.getValue();
}
@凌驾
公共类型convertToEntityAttribute(字符串dbData){
返回类型.fromValue(dbData);
}
}