我有一個現有的數據庫,我現在連接到使用休眠。目前我無法更改其中的數據,並且除了單個列以外的所有內容都可以工作。Hibernate枚舉映射使用註釋
我有了值的狀態欄:
- 新
- 在
- 郵寄
- 出
和列如下映射:
@Column(name = "STATUS", nullable = false, length = 50)
@Enumerated(EnumType.STRING)
private TeamMemberStatus status;
我真的很喜歡(爲了應用的原因)把這個列映射爲Java Enum(TeamMemberStatus),,但是由於'new'是Java中的關鍵字,所以我不能將它作爲enum成員。
如果我有enum contstants NEW,MAILED,IN和OUT hibernate會因EnumType失敗而失敗Enum.valueOf()。
有沒有什麼辦法可以將這個映射到我的Enum而無需編寫複雜的UserType?
- 添加的內容
我的枚舉是這樣的:
public enum TeamMemberStatus {
NEW, MAILED, IN, OUT
}
是一個有效的Java枚舉,但是不匹配的數據庫的情況。如果我改變以匹配如數據庫:
public enum TeamMemberStatus {
new, mailed, in, out
}
它不會編譯爲「新」是一個Java保留字。
我假設你的意思是改變數據庫中的數據?像更新TABLE設置狀態=上(狀態)。 我不能這樣做,因爲它會打破與那些希望它爲小寫值的數據交流的現有應用程序。 – stevemac 2010-08-04 00:35:36
@stevemac更新 – 2010-08-04 16:08:01
這就是我最終得出的結果,bascially內部存儲字符串,並將其映射到枚舉當get/set被調用。 這將需要做的短期內,直到我可以讓所有的應用程序更新使用大寫常量。 – stevemac 2010-08-05 04:14:15