Domanda

Sto usando hbm2java (hibernate3-maven-plugin) per generare entità.

Come faccio a passare da @EmbeddedId generato automaticamente a @IdClass?

Grazie

È stato utile?

Soluzione

Il plugin hibernate maven non lo fa automaticamente, devi aggiornare le tue classi manualmente se vuoi usare @IdClass.

Altri suggerimenti

Non ho provato a seguire. Ma da quello che ho lavorato con lo strumento di reverseengineering Hibernate penso che dovrebbe essere possibile utilizzando un file reveng.xml. Nel tuo file 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>

E nel reveng.xml specificare la mappatura del tipo alla IdClass (vedere la documentazione degli strumenti Hibernate http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#type_map o http://docs.jboss.org/tools/3.1 .0.GA / en / hibernatetools / html_single / index.html # d0e5869 ).

Come accennato, non l'ho provato.

Per vari altri motivi ho rinunciato a utilizzare il reverse engineering. Un problema è che gli strumenti di ibernazione non sono compatibili con Hibernate 3.5 e versioni successive. Inoltre il plugin Maven è di terze parti e utilizza una versione precedente degli strumenti Hibernate, rispetto a quella generale disponibile. Quindi sono arrivato anche nella situazione in cui ho dovuto chiamare Ant da Maven per fare il reverse engineering.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top