使用JAXB,我們直接生成Java bean。在XSD,我們有一個枚舉類型(說):JAXB - 從XSD生成類 - 將枚舉轉換爲除枚舉名以外的自定義toString()
<xs:simpleType name="ColorType">
<xs:restriction base="xs:string">
<xs:enumeration value="Red"/>
<xs:enumeration value="Blue"/>
<xs:enumeration value="Green"/>
</xs:restriction> </xs:simpleType>
在數據庫中,我們可以有一個像R,B和G的紅色,黑色和綠色標誌。在某種程度上,我們的標誌只是一個字母單詞。我想枚舉,這樣... ColorType.Red.toString()是等於到R ...或類似的東西,這樣我可以鏈接到它。現在我手動檢查enumtype使用一些條件語句,然後插入或任何數據庫操作時,我轉換回字符串。
它來到我的腦海一些愚蠢的解決方案來解決這個問題(愚蠢的,這些解決方案都不好) 我認爲一個解決方案使用
<xs:enumeration value="R">
解決這個但這並不能告訴我什麼是R.
第二種解決方案可以將ColorType設置爲字符串,但這意味着我的ColorType可以是偶數Z,這在數據庫中不是任何顏色,我的意思是它將不受限制。 :(...
什麼辦法可以解決這個問題
嘿,感謝您的幫助。但是你共享的鏈接在開始時告訴我們,如果枚舉類型的值不是'xsd:string',那麼它會告訴你如何爲int或其他類型定義映射。但我的問題,1字符串的字符串映射:( – kinshuk4