0
我enum
看起來像這樣映射枚舉表列其中DB值是枚舉領域,而不是標籤
public enum EventType {
DATASET_DELETION("DSDEL");
private static final Map<String, EventType> dbIdLookup = new HashMap<>();
static {
for (EventType type : EnumSet.allOf(EventType.class)) {
String databaseID = type.getId();
dbIdLookup.put(databaseID, type);
}
}
private String id;
EventType(String _id) {
this.id = _id;
}
public String getId() {
return this.id;
}
public EventType getFromDatabaseID(String _databaseID) {
EventType result = dbIdLookup.get(_databaseID);
return result;
}
}
其中DATASET_DELETION是我想什麼來引用字段值在Java代碼中和DSDEL是我想要將它映射到數據庫中的值。我希望數據庫代碼更緊湊,Java標籤更具可讀性。
我當前的映射不起作用:
@Column(name = "EVENT_TYPE")
private EventType type;
投擲
java.lang.RuntimeException: java.lang.IllegalArgumentException: Unknown name value for enum class blah.blah.EventType: DSDEL
我怎麼能映射一個枚舉不是枚舉的主標籤,但一個數據庫值的宣言中的字段?