Hibernate 为什么Hyperjaxb3生成RestItem类?

Hibernate 为什么Hyperjaxb3生成RestItem类?,hibernate,jaxb,jaxb2,hyperjaxb,Hibernate,Jaxb,Jaxb2,Hyperjaxb,我正在使用maven-hyperjaxb3-plugin(0.6.1)从xsd文件生成域类。除了一个类之外,所有的东西都运行得很好,即使这样,在我添加了超过23个字段之前,它也运行得很好 一旦我超过这个字段数,它就会为我的表生成两个名为ILT的类:一个名为ILT.java,另一个名为ILTRestItem.java,我认为这与将这些类与REST API一起使用有关(我不打算这么做) ILTRestItem类有编译错误。它对XmlAdapterUtils.UnmarshalJaxBelement进

我正在使用maven-hyperjaxb3-plugin(0.6.1)从xsd文件生成域类。除了一个类之外,所有的东西都运行得很好,即使这样,在我添加了超过23个字段之前,它也运行得很好

一旦我超过这个字段数,它就会为我的表生成两个名为ILT的类:一个名为ILT.java,另一个名为ILTRestItem.java,我认为这与将这些类与REST API一起使用有关(我不打算这么做)

ILTRestItem类有编译错误。它对XmlAdapterUtils.UnmarshalJaxBelement进行了大量调用,错误消息如下:

方法MarshallJAXbeElement(类、QName、类、, XmlAdapterUtils类型中的BoundType)不适用于 参数(类、QName、类、字符串)

实际上,我并不太担心这个错误,因为我宁愿它根本不创建ILTRestItem类。其他(较小的)类工作得很好,我的目标是让ILT做同样的事情

如果我运行jaxb2插件(maven-jaxb2-plugin)并使用该插件生成类,则不会生成ILTRestItem,并且这些类是正确的,但它们当然缺少JPA注释。这让我怀疑Hyperjaxb3负责生成ILTRestItem类,但我查看了源代码,希望看到其中包含类似“RestItem”的类,但没有

一个相关的问题是,我在这里使用单表继承。ILT类和另一个类(IFT)使用相同的基础表(事务),它们都扩展了事务类。如果我从事务中分离ILT并使其成为非继承类,ILTRestItem将不再生成

对JAXB2和HyperJaxb3进行了大量搜索,我没有找到任何对RestItem的引用,也没有找到生成RestItem的原因(或者是哪一个生成了RestItem)。我希望有一些配置开关可以关闭RestItem生成,但到目前为止我还看不到

为了完整性,我应该补充一点,我试着切换不同的字段,看看其中是否有一个是这种行为的触发因素,而不是。它似乎真的是字段的数量,或者可能是记录的总长度

另外:JPA 2.1和相关的maven片段是:

    <plugin>
        <groupId>org.jvnet.hyperjaxb3</groupId>
        <artifactId>maven-hyperjaxb3-plugin</artifactId>
        <version>0.6.1</version>
        <dependencies>
            <dependency>
                <groupId>com.xyz</groupId>
                <artifactId>ims-core-partner</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <variant>jpa2</variant>
            <extension>true</extension>
                    <args>
                        <arg>-extension</arg>
                        <arg>-XtoString</arg>
                        <arg>-Xannotate</arg>
                    </args>
        </configuration>
    </plugin>

org.jvnet.hyperjaxb3
maven-hyperjaxb3-plugin
0.6.1
com.xyz
国际监测系统核心伙伴
${project.version}
生成
jpa2
真的
-延伸
-XtoString
-山奈特
依赖项是使用annox在该附加中获取两个自定义注释

最后,这里是我的xsd文件中的相关片段:

<complexType name="ILT">
    <xsd:annotation>
        <xsd:appinfo>
            <hj:entity>
            <orm:inheritance strategy="SINGLE_TABLE"/>
            <orm:discriminator-value>ILT</orm:discriminator-value>
            </hj:entity>
        </xsd:appinfo>
    </xsd:annotation>
   <xsd:complexContent>
    <xsd:extension base="tns:Transaction">
        <xsd:sequence>
        <element name="iltType" type="tns:ItemType">
        </element>
        <element name="investmentOrderId" type="string">
        </element>
...

ILT
...

只要我的字段列表足够短,这就行了。

有趣的是,一旦你在这里提出一个问题,答案就会在接下来的30分钟内出现。不管怎样。我的问题是由我在ILT类(生成ILTRestItem的类)和事务类(它从中继承的类)中定义了相同的字段引起的。相当合理的是,它试图将其拆分成一个单独的表并进行连接。当我从ILT中删除该字段时,问题消失了。我不确定我怎么会错过某个特定领域的原因,我想我可能在升级到最新版本之前就得出了这个结论