簡體   English   中英

Hyperjaxb3:如何使用超類的ID?

[英]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.

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