У нас есть значительная база кода, в которой Hyperjaxb3 используется для аннотирования классов Java, сгенерированных с помощью xjc (наряду с другими подключаемыми модулями xjc, в том числе собственными).
Мы пытаемся обновить Hyperjaxb3 0.5.6 до 0.6.2, но столкнулись с серьезной проблемой с очевидным изменением стратегии именования между этими версиями.
В частности, когда имя сложного типа, такое как «OneTwo», приводит к имени таблицы «ONETWO» в 0.5.6, тогда как в 0.6.2 имя таблицы — «ONE_TWO». То же самое для имен столбцов.
Мы очень сильно предпочитаем НЕ рефакторить сотни запросов, чтобы приспособить такое изменение именования (хотя более новое, более традиционное именование SQL, безусловно, имеет смысл — мы бы хотели, чтобы это было поведением по умолчанию, когда этот проект начинался шесть лет назад).
Есть ли простой способ переключиться на старую стратегию именования? В противном случае, можете ли вы предоставить подробную информацию о том, как именно расширить Hyperjaxb3 с помощью пользовательской стратегии именования?
Просмотрев этот тест или вот этот, нам точно не понятно что нам нужно сделать с нашим 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>