[英]Hyperjaxb3: How do I get it to use a superclass' id?
我正在嘗試從* .xsd文件生成一組Java類,這些文件都具有一個公共的映射超類(稱為DataObject)。 到目前為止,我已經設法在bindings.xjb文件中使用以下內容來生成DataObject的后代類:
<jaxb:globalBindings localScoping="toplevel"> <xjc:superClass name="com.companyname.model.DataObject"/> <jaxb:serializable uid="1" /> </jaxb:globalBindings>
我的問題是Hyperjaxb3生成了自己的稱為hjid的主鍵,但是DataObject已經包含一個主鍵,我需要/想要使用它。
那么,如何停止Hyperjaxb3為所有類生成hjid? 我已經嘗試過在網上找到的各種建議,但是它們對我沒有用。
您可以使用hj:id
自定義元素將現有屬性之一標記為標識符屬性。 請參閱以下內容:
<xs:complexType name="myType">
<xs:sequence>
<!-- ... -->
<xs:element name="id" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:appinfo>
<hj:id>
<orm:column name="MY_ID"/>
<orm:generated-value strategy="SEQUENCE" generator="my-sequence"/>
<orm:sequence-generator name="my-sequence" sequence-name="MY_SEQ"/>
</hj:id>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ... -->
</xs:sequence>
</xs:complexType>
要么
<xs:element name="id" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:appinfo>
<hj:id/>
</xs:appinfo>
</xs:annotation>
</xs:element>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.