Обратные инженерные первичные ключи 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, чтобы сделать обратный инжиниринг.

Другие вопросы по тегам