0

休止状態ツールを使用してエンティティを生成すると、奇妙な動作が発生します。慣習を尊重するために「Java名」が必要です。だから私は de reveng.xml を設定しました。

<hibernate-reverse-engineering>
    <schema-selection match-schema="SCHEMA" match-table="PRE_.*" />

    <table-filter match-name="PRE_.*" package="com.my.ent"/>

    <table name="PRE_MY_TABLE" schema="SCHEMA" class="MyTable">
        <column name="C_ID" property="id" />
        <column name="C_COD" property="cod" />
    </table>
    <table name="PRE_MY_TABLE_2" schema="SCHEMA" class="MyTable2">
        <column name="C_ID" property="id" />
        <column name="C_COD" property="cod" />
    </table>
        ....
    <table name="PRE_MY_TABLE_N" schema="SCHEMA" class="MyTableN">
        <column name="C_ID" property="id" />
        <column name="C_COD" property="cod" />
    </table>
</hibernate-reverse-engineering>

私が見ているのは、(com.my.ent)内のフォルダー構造を持つツールconfに設定されたフォルダーに配置され、revenファイルに設定された名前を尊重する(エンティティ1からNの)結果のコードです。その代わりに、適切なフォルダー構造で配置されたコードを取得していますが、名前は DB とまったく同じです。

わかりません。これは簡単な手順であり、うまく機能させることができません。

どんな助けも高く評価されます。

前もって感謝します!

4

1 に答える 1

0

さて、問題は解決するのが本当に簡単でした。

問題はテーブル宣言にありました。

クラスを非修飾として宣言すると、テーブル フィルターのパッケージ宣言がオーバーライドされるため、生成されたコードはルート フォルダーに移動し、作成されたエンティティにはパッケージ宣言が含まれません (既定値を使用)。

解決策は、テーブル構成を次のように宣言することです。

<table-filter match-name="PRE_.*" package="com.my.ent"/>

<table name="PRE_MY_TABLE" schema="SCHEMA" class="com.my.ent.MyTable">
    <column name="C_ID" property="id" />
    <column name="C_COD" property="cod" />
</table>

乾杯!

于 2014-05-27T16:16:54.307 に答える