Обратные инженерные первичные ключи Hibernate (EmbeddedId to IdClass) - PullRequest
1 голос
/ 18 марта 2011

Я использую hbm2java (hibernate3-maven-plugin) для генерации сущностей.

Как переключить автоматически сгенерированный @EmbeddedId в @IdClass?

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Я не пытался следовать. Но из того, что я работал с инструментом реинжиниринга 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#type_map или http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#d0e5869).

Как уже упоминалось, я не пробовал.

По другой причине я отказался от использования реверс-инжиниринга. Одна из проблем заключается в том, что инструменты Hibernate не совместимы с Hibernate 3.5 и выше. Кроме того, плагин Maven является сторонним и использует более старые версии инструментов Hibernate, чем общедоступные. Поэтому я также попал в ситуацию, когда мне пришлось вызывать муравья из Maven, чтобы выполнить обратный инжиниринг.

0 голосов
/ 18 марта 2011

Плагин hibernate maven не делает этого автоматически, вам нужно обновить свои классы вручную, если вы хотите использовать @ IdClass.

...