clés primaires Hibernate d'ingénierie inverse (EmbeddedId à IdClass)
-
27-10-2019 - |
Question
J'utilise hbm2java (hibernate3-maven-plugin) afin de générer des entités.
Comment puis-je changer l'auto généré EmbeddedId à @IdClass?
Merci
La solution
Le veille prolongée plugin Maven ne, vous ne devez pas le faire automatiquement mettre à jour vos classes manuellement si vous souhaitez utiliser @IdClass.
Autres conseils
Je n'ai pas essayé de suivre. Mais de ce que je travaille avec l'outil de mise en veille prolongée, je pense qu'il rétro-ingénierie devrait être possible à l'aide d'un fichier reveng.xml. Dans votre fichier 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>
Et dans le reveng.xml spécifier le mappage de type à l'IdClass (voir outils Hibernate documentation http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#type_map ou http://docs.jboss.org/tools/3.1 .0.GA / fr / hibernatetools / html_single / index.html # d0e5869 ).
Comme mentionné précédemment, je n'ai pas essayé.
Pour diverses autres raisons que j'ai renoncé à l'aide de l'ingénierie inverse. Un problème est que les outils mise en veille prolongée ne sont pas conformes à Hibernate 3.5 et au-dessus. En outre, le plugin Maven est tiers et utilise une des versions plus anciennes d'outils Hibernate, que le cadre général disponible. Donc, je suis également venu dans la situation où je devais appeler fourmi de Maven faire l'ingénierie inverse.