Chaves primárias de engenharia reversa do Hibernate (EmbeddedId para IdClass)
-
27-10-2019 - |
Pergunta
Estou usando hbm2java (hibernate3-maven-plugin) para gerar entidades.
Como eu mudo o @EmbeddedId gerado automaticamente para @IdClass?
Obrigado
Solução
O plugin Hibernate maven não faz isso automaticamente, você precisa atualizar suas classes manualmente se quiser usar @IdClass.
Outras dicas
Não tentei seguir. Mas pelo que tenho trabalhado com a ferramenta de engenharia reversa Hibernate, acho que deve ser possível usando um arquivo reveng.xml. Em seu arquivo 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 no reveng.xml, especifique o mapeamento de tipo para IdClass (consulte a documentação das ferramentas do Hibernate 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 / en / hibernatetools / html_single / index.html # d0e5869 ).
Como mencionei, não tentei.
Por vários outros motivos, desisti de usar a engenharia reversa. Um problema é que as ferramentas de hibernação não são compatíveis com o Hibernate 3.5 e superior. Além disso, o plugin Maven é de terceiros e usa uma versão mais antiga das ferramentas do Hibernate, do que a geral disponível. Então, também cheguei à situação em que tive que chamar a formiga de Maven para fazer a engenharia reversa.