Hibernate 为什么Hyperjaxb3生成RestItem类?
我正在使用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片段是: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进
<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中删除该字段时,问题消失了。我不确定我怎么会错过某个特定领域的原因,我想我可能在升级到最新版本之前就得出了这个结论