Pergunta

Estou usando hbm2java (hibernate3-maven-plugin) para gerar entidades.

Como eu mudo o @EmbeddedId gerado automaticamente para @IdClass?

Obrigado

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top