Frage

Ich verwende hbm2java (hibernate3-maven-plugin), um Entitäten zu generieren.

Wie schalte ich die automatisch generierte @EmbeddedId auf @IdClass um?

Danke

War es hilfreich?

Lösung

Das Maven-Plugin für den Ruhezustand erledigt dies nicht automatisch. Sie müssen Ihre Klassen manuell aktualisieren, wenn Sie @IdClass verwenden möchten.

Andere Tipps

Ich habe nicht versucht zu folgen. Aber von dem, was ich mit dem Hibernate Reverseengineering-Tool gearbeitet habe, denke ich, dass es möglich sein sollte, mithilfe einer Rache.xml-Datei. In Ihrer POM-Datei.

<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>

Geben Sie in der Datei ribg.xml die Typzuordnung zur IdClass an (siehe Dokumentation zu Hibernate-Tools http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#type_map oder http://docs.jboss.org/tools/3.1 .0.GA / de / hibernatetools / html_single / index.html # d0e5869 ).

Wie bereits erwähnt, habe ich es nicht versucht.

Aus verschiedenen anderen Gründen habe ich das Reverse Engineering aufgegeben. Ein Problem besteht darin, dass Tools für den Ruhezustand nicht mit Hibernate 3.5 und höher kompatibel sind. Darüber hinaus ist das Maven-Plugin ein Drittanbieter und verwendet eine ältere Version der Hibernate-Tools als die allgemein verfügbare. Also kam ich auch in die Situation, dass ich Ameise aus Maven anrufen musste, um das Reverse Engineering durchzuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top