1

私は、大規模なレガシーSQLサーバーデータベースからのHibernateマッピングのリバースエンジニアリングを担当しました。データベースはチェック制約(テーブルごとにいくつか)とインデックスを広範囲に使用します。これらはDBAの懸念事項であると私は主張しますが、Hibernateマッピングでそれらを保持する必要があります。

Hibernate Tools for Eclipseを使用すると、テーブルを.hbm.xmlファイルにリバースエンジニアリングできます。ただし、チェック制約またはインデックスはありません。チェック制約とインデックスの両方を手動でマッピングに直接追加できることを知っています。例:

<class name="package.Tablename" 
       table="TABLENAME" 
       schema="dbo" 
       catalog="MyDB"
       check="START_DATE &lt; END_DATE"> <!-- here -->
   ...
   <property name="endDate" type="timestamp" index="IDX_END_DATE"> <!-- here -->
            <column name="END_DATE" />
   </property>
   ...
</class>

数百のテーブルと数千のインデックス/チェック制約があるため、これらをリバースエンジニアリングされたマッピングに手動で追加することは実際には実現可能ではありません。

Hibernate Toolsにこれらを吐き出させることは可能ですか?もしそうなら、どのように?そうでない場合、誰かがこれを行う別のツールを推奨できますか?

4

1 に答える 1

0

HibernateToolsを使用して箱から出してこれを行うことはできません。<database-object>ただし、要素内のマッピングにDDLを追加することは可能です。この情報をリバースエンジニアリングするには、カスタムテンプレートを介して呼び出されるカスタムユーティリティクラスを作成する必要があります。

大量の<database-object>sは、私の雇用主が望んでいたレベルの抽象化と一般的なユーザーフレンドリーを提供しなかったため、このアプローチを採用せず、データベースを別の方法でモデル化しました。

于 2011-04-07T14:15:07.880 に答える