Pregunta

Estoy usando hbm2java (hibernate3-maven-plugin) para generar entidades.

¿Cómo cambio el @EmbeddedId generado automáticamente a @IdClass?

Gracias

¿Fue útil?

Solución

El complemento hibernate maven no lo hace automáticamente, debe actualizar sus clases manualmente si desea usar @IdClass.

Otros consejos

No he intentado seguir. Pero por lo que he estado trabajando con la herramienta de ingeniería inversa Hibernate, creo que debería ser posible mediante el uso de un archivo reveng.xml. En su archivo 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>

Y en reveng.xml especifique el mapeo de tipos para IdClass (consulte la documentación de las herramientas de 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 / es / hibernatetools / html_single / index.html # d0e5869 ).

Como se mencionó, no lo he probado.

Por otras razones, dejé de utilizar la ingeniería inversa. Un problema es que las herramientas de hibernación no son compatibles con Hibernate 3.5 y versiones posteriores. Además, el complemento de Maven es de terceros y utiliza una versión anterior de las herramientas de Hibernate, que la disponible en general. Así que también llegué a la situación en la que tuve que llamar a Ant desde Maven para hacer la ingeniería inversa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top