Hibernate le chiavi primarie di reverse engineering (da EmbeddedId a IdClass)
-
27-10-2019 - |
Domanda
Sto usando hbm2java (hibernate3-maven-plugin) per generare entità.
Come faccio a passare da @EmbeddedId generato automaticamente a @IdClass?
Grazie
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.