我们有一个重要的代码库,它利用 Hyperjaxb3 来注释使用 xjc 生成的 Java 类(以及其他 xjc 插件,包括一个自制的插件)。
我们正在尝试从 Hyperjaxb3 0.5.6 升级到 0.6.2,但遇到了一个重大问题,即这些版本之间明显的命名策略更改。
具体来说,在 0.5.6 中,像“OneTwo”这样的 complexType 名称会导致表名“ONETWO”,而在 0.6.2 中,表名是“ONE_TWO”。列名相同。
我们非常倾向于不重构数百个查询来适应这样的命名变化(尽管更新、更传统的 SQL 命名当然是有意义的——我们希望它是六年前这个项目开始时的默认行为)。
有没有一种简单的方法可以切换到旧的命名策略?如果做不到这一点,您能否提供有关如何使用自定义命名策略扩展 Hyperjaxb3 的详细信息?
看过这个 test或this one后,我们并不清楚我们需要对我们的 pom 做什么来指定不同的命名策略类,并且扩展指南目前是空的。
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<configuration>
<extension>true</extension>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>${jaxb.commons.version}</version>
</plugin>
<plugin>
<groupId>org.jvnet.hyperjaxb3</groupId>
<artifactId>hyperjaxb3-ejb-plugin</artifactId>
<version>${hyperjaxb3.version}</version>
</plugin>
<plugin>
<groupId>${project.groupId}</groupId>
<artifactId>jaxb-x12</artifactId>
<version>${project.version}</version>
</plugin>
</plugins>
<args>
<arg>-enableIntrospection</arg>
<arg>-Xcopyable</arg>
<arg>-Xequals</arg>
<arg>-XhashCode</arg>
<arg>-Xinheritance</arg>
<arg>-Xhyperjaxb3-ejb</arg>
<arg>-Xx12</arg>
</args>
</configuration>
</plugin>