gpt4 book ai didi

java - Hyperjaxb3 : How do I get it to use a superclass' id?

转载 作者:行者123 更新时间:2023-12-01 11:33:35 25 4
gpt4 key购买 nike

我正在尝试从 *.xsd 文件生成一组 Java 类,这些类都有一个公共(public)的映射父类(super class)(称为 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>

关于java - Hyperjaxb3 : How do I get it to use a superclass' id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com