Обратные инженерные первичные ключи Hibernate (EmbeddedId to IdClass)
Я использую hbm2java (hibernate3-maven-plugin) для создания сущностей.
Как переключить автоматически сгенерированный @EmbeddedId на @IdClass?
Спасибо
2 ответа
Плагин hibernate maven не делает этого автоматически, вам нужно обновить ваши классы вручную, если вы хотите использовать @IdClass.
Я не пытался следовать. Но из того, что я работал с инструментом реинжиниринга Hibernate, я думаю, что это должно быть возможно при использовании файла reveng.xml. В вашем файле POM.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<components>
<component>
<name>hbm2java</name>
</component>
</components>
<componentProperties>
<revengfile>/src/main/resources/reveng/model.reveng.xml</revengfile>
</componentProperties>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
</executions>
А в местьем месторасположения укажите тип IdClass (см. Документацию по инструментам Hibernate http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html или http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html).
Как уже упоминалось, я не пробовал это.
По разным причинам я отказался от использования реверс-инжиниринга. Одна из проблем заключается в том, что инструменты Hibernate не совместимы с Hibernate 3.5 и выше. Более того, плагин Maven является сторонним и использует более старые версии инструментов Hibernate, чем общедоступные. Поэтому я также попал в ситуацию, когда мне пришлось вызывать муравья из Maven, чтобы сделать обратный инжиниринг.