我想要將Enum的值與hibernate映射以從數據庫中獲取數據。 在數據庫列**EASE_RATING** is number[1]
。我可以將數據保存在數據庫中。使用Hibernate映射枚舉值
但是當我通過Criteria.list檢索數據()我得到easeRating =兩個代替easeRating = 2。
我的問題是如何以序號或枚舉值的形式獲取數據。
public enum Rating {
Zero(0), // [No use] Taken Zero B'Coz Ordinal starts with 0
One(1),
...
Five(5);
private final int value;
Rating(int value){
this.value = value;
}
public int getValue(){
return this.value;
}
public static Rating getRating(int x) {
switch(x) {
case 1: return One; ...
case 5: return Five;
}
return One;
}
}
POJO:
@Enumerated(EnumType.ORDINAL)
@Column(name = "EASE_RATING", nullable = false)
private Rating easeRating;
UPDATE
我想在int該值序()]在休眠列表()。 我正在通過休眠數據庫。
List<CustomerFeedback> result = criteria.list();
我可以實現價值throgh **getValue()**
System.out.println(Rating.Five.getValue()); // 5
System.out.println(Rating.Five); // Five
System.out.println(Rating.Five.name()); // Five
但我將如何得到這個在Hibernate中的list()
該屬性是類型的評級。所以你得到的不是「兩個」。這是評級「Rating.Two」的實例。您可以在此實例上調用getValue()以獲取其值。 –