簡體   English   中英

如何在使用Hibernate的@Enumerated時設置默認枚舉值?

[英]How to set default enum value while using Hibernate's @Enumerated?

我的數據庫表中有一列我要映射到Java對象。 我用注釋標記了所選列:

@Enumerated(EnumType.STRING)
private RoleType code;

問題是在數據庫方面,除了我感興趣的值之外,存在無效(在我正在執行的任務的上下文中)值,因此我想將它們映射到“未知”類型。

ADMIN ("ADMIN "),
CLIENT ("CLIENT"),
SOMEBODY ("SOMEBODY"),
UNKNOWN ("UNKNOWN");

試着做上面的我得到了Hibernate映射錯誤。 是否可以使用Hibernate將枚舉(ADMIN,CLIENT,SOMEBODY)中提到的值不同於3的值映射到某個默認枚舉值(即UNKNOWN)?

編輯:

使事情更清楚

數據庫端的值應如何映射到Java端:

TYPE_1  --->  UNKNOWN
ADMIN  --->  ADMIN
CLIENT  --->  CLIENT
SOMEBODY  --->  SOMEBODY
TYPE_2  --->  UNKNOWN
SOMEBODY_2  --->  UNKNOWN

好吧,您可以運行更新查詢以使它們都未知,但如果您不想這樣做,您可以創建自己的用戶類型: http ://www.gabiaxel.com/2011/01/better-enum-mapping- 與-hibernate.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM