2009-03-31 10 views
1

既存のデータベースがhbmマッピングファイルから作成されています。既存のテーブル/ POJOに依存するHibernateマッピングファイル

オプションの機能用にいくつかの新しいテーブルを作成する必要があります。

これらの新しいテーブルは常に存在することが1つありますが、テーブルとPOJOはリクエストに応じて作成するほうがよいでしょう。

私の問題は、これらのテーブル/ POJOが既存のテーブル/ POJOに依存していることです。私はマッピングファイルを作成しましたが、既存のテーブルと新しいテーブルの作成/削除コマンドを作成する場合は、 とPOJOも作成する必要があります。

作成スクリプトに現れる既存のテーブル/ POJOがグループ化されないようにすることはできますか?

以下の例では、グループは既存のテーブル/ 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> 

これを生成するためのAntターゲットは以下であり、唯一の依存オブジェクトがリストされている場合に動作します:

はBUILDが失敗した C:\プロジェクト\ fooというの\ DB-のbuild.xml:187:テキストが失敗したスキーマ:協会からグループへの依存参照せず

  <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> 
はその後、私はエラーを取得しますテーブルDISCON_TESTは、マッピングされていないクラスを参照:uk.co.foo.domain.dfwv.Group

Hibernateのバージョン:3.1.2

答えて

0

あなたはジュースができませんでしたあなたが本当にそれらを必要とするまで、マッピングをコメントアウトしないでください。 hibernateは、提供されたエンティティの完全なメタモデルを必要とし、それらの一部についてちょうど "スタブ"を作成することはできません。

+0

私はそれを実行できますが、ビルドはビルドサーバーから作成されるため、同じビルドターゲットを実行します。 少なくとも、ビルドサーバーはコードを変更することなく新しい機能を実行できるという目標があります。 –

+0

これらの新しい - しかし非アクティブ化されたエンティティは、ビジネスロジックが追加されていると思いますが、それも "非アクティブ化"していますか?ロジックは(いつか)古いエンティティと新しいエンティティを結合しているので、それも壊れませんか? はmaintance hellのように聞こえます;-) –

関連する問題