[英]How could I change java.lang.Enum's ordinal when using JPA and Spring?
實體:
@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
我想將貓的int值( 13 )保留在數據庫中(例如mysql)。但是在mysql中,enumType為( 1 ),什么是ORDINAL值。我想知道是否有一種方法可以通過JPA和彈簧???
有這樣的方法:
change "private MyEnumType enumType;" to "private **int** enumType;"
然后:
entity.setsEnumType(MyEnumType.CAT.getValue());
但是我不喜歡這樣。
JPA 2.1允許以標准方式定義自定義類型。 使用@Convert批注。 有關說明,請參閱http://www.thoughts-on-java.org/2013/10/jpa-21-how-to-implement-type-converter.html ,這是javadoc不夠的。
如果您仍在使用JPA 2.0,則Hibernate具有定義自定義類型的專有方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.