2009-03-31 5 views
1

Wir haben eine bestehende und funktionierende Datenbank aus hbm Mapping-Dateien erstellt.Hibernate-Mapping-Datei mit Abhängigkeiten zu bestehenden Tabellen/POJOs

Wir möchten einige neue Tabellen für eine optionale Funktion erstellen.

Eine Option besteht darin, dass diese neuen Tabellen immer vorhanden sind, aber wir bevorzugen, dass die Tabellen und POJOs nur auf Anfrage erstellt werden.

Mein Problem ist, dass diese Tabellen/POJOs Abhängigkeit von vorhandenen Tabellen/POJOs haben. Ich habe eine Mapping-Datei erstellt, aber ich kann nur funktionieren, wenn sie create/drop-Befehle für die vorhandenen Tabellen sowie die neuen, zusammen mit ihren POJOs erstellt.

Kann ich diese vorhandene Tabelle/POJO für die Gruppe vermeiden, die im Erstellungsskript erscheint.

Im folgenden Beispiel ist Group eine existierende Tabelle/POJO.

<id name="id" type="java.lang.Long"> 
     <column name="ID" not-null="true" /> 
    </id> 

    <many-to-one name="group" 
     class="uk.co.foo.domain.dfwv.Group" 
     foreign-key="GROUP_FK" lazy="false" not-found="ignore"> 
     <meta attribute="use-in-tostring">false</meta> 
     <column name="GROUP_NAME" 
      not-null="true" /> 
    </many-to-one> 
</class> 

Die Ameise Ziel zu erzeugen, das unten ist und funktioniert nur, wenn die abhängigen Objekte aufgeführt sind:

  <fileset dir="${dfwv.mappings.dir}"> 
       <include name="**/groups.hbm.xml" /> 
      </fileset> 
     </configuration> 
     <hbmtemplate exporterclass="uk.co.foo.hibernateutils.tools.Exporter" templateprefix="config/foopojo/" template="config/foopojo/Pojo.ftl"> 
      <property key="jdk5" value="true" /> 
      <property key="ejb3" value="false" /> 
     </hbmtemplate> 
    </hibernatetool> 
</target> 

Ohne die abhängige Bezugnahme auf Gruppe dann habe ich den Fehler:

BUILD FAILED C: \ projects \ foo \ db-build.xml: 187: Schema Text fehlgeschlagen: Eine Vereinigung von die Tabelle DISCON_TEST bezieht sich auf eine nicht zugeordnete Klasse: uk.co.foo.domain.dfwv.Group

Hibernate Version: 3.1.2

Antwort

0

konnte nicht Sie jus t die Mappings auskommentieren, bis du sie wirklich brauchst? Hibernate benötigt ein vollständiges Metamodell der bereitgestellten Entitäten und kann für einige nicht nur "Stubs" erstellen.

+0

Ich könnte und das würde funktionieren, aber die Builds werden von einem Build-Server erstellt, also müsste ich diese Änderung vornehmen und führen Sie das gleiche Build-Ziel aus. Im Moment habe ich zumindest ein Ziel, dass der Build-Server für die neue Funktionalität ausführen kann, ohne Codeänderungen vornehmen zu müssen. –

+0

Ich denke mit diesen neuen - aber deaktivierten - Entities kommt zusätzliche Geschäftslogik, halten Sie das auch "deaktiviert"? würde es nicht auch brechen, weil die Logik (wird irgendwann) alte und neue Wesenheiten verbindet? klingt wie Wartung Hölle ;-) –

Verwandte Themen