Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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.lang.Enum';使用JPA和Spring时,顺序是什么?_Java_Spring_Hibernate_Jpa_Enums - Fatal编程技术网

如何更改java.lang.Enum';使用JPA和Spring时,顺序是什么?

如何更改java.lang.Enum';使用JPA和Spring时,顺序是什么?,java,spring,hibernate,jpa,enums,Java,Spring,Hibernate,Jpa,Enums,实体: @Entity @Table(name = "table_name") public class MyClass extends IdEntity { private MyEnumType enumType; @Enumerated(EnumType.ORDINAL) public MyEnumType getEnumType() { return enumType; } public void setEnumType(MyEnumType enumType)

实体:

@Entity
@Table(name = "table_name")
public class MyClass extends IdEntity {
    private MyEnumType enumType;

    @Enumerated(EnumType.ORDINAL)
public MyEnumType getEnumType() {
    return enumType;
}

public void setEnumType(MyEnumType enumType) {
    this.enumType= enumType;
}
}
public enum MyEnumType {
    DOG(11),CAT(13),BULL(20);
    private int value;
    private MyEnumType (int value) {
    this.value= value;
}
    public int getValue() {
    return value;
}
public void setValue(int value) {
    this.value= value;
}
}
//any code then ...
entity.setsEnumType(MyEnumType.CAT);
//...persist API 
枚举:

@Entity
@Table(name = "table_name")
public class MyClass extends IdEntity {
    private MyEnumType enumType;

    @Enumerated(EnumType.ORDINAL)
public MyEnumType getEnumType() {
    return enumType;
}

public void setEnumType(MyEnumType enumType) {
    this.enumType= enumType;
}
}
public enum MyEnumType {
    DOG(11),CAT(13),BULL(20);
    private int value;
    private MyEnumType (int value) {
    this.value= value;
}
    public int getValue() {
    return value;
}
public void setValue(int value) {
    this.value= value;
}
}
//any code then ...
entity.setsEnumType(MyEnumType.CAT);
//...persist API 
主代码:

@Entity
@Table(name = "table_name")
public class MyClass extends IdEntity {
    private MyEnumType enumType;

    @Enumerated(EnumType.ORDINAL)
public MyEnumType getEnumType() {
    return enumType;
}

public void setEnumType(MyEnumType enumType) {
    this.enumType= enumType;
}
}
public enum MyEnumType {
    DOG(11),CAT(13),BULL(20);
    private int value;
    private MyEnumType (int value) {
    this.value= value;
}
    public int getValue() {
    return value;
}
public void setValue(int value) {
    this.value= value;
}
}
//any code then ...
entity.setsEnumType(MyEnumType.CAT);
//...persist API 
我想将cat的int值(13)保存在数据库中(例如mysql)。但在mysql中,enumType是(1),序数是多少。我想知道有没有办法通过JPA和spring来存储我的自定义值

有一种方法是这样的:

将“private MyEnumType enumType;”更改为“private**int**enumType;”

然后:

entity.setsEnumType(MyEnumType.CAT.getValue())


但我不喜欢这样。

JPA2.1允许以标准方式定义自定义类型。使用注释。请参阅以获取解释,javadoc是不够的

如果您仍然使用JPA2.0,那么Hibernate有一种专有的定义方法