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