使用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