6

コードベースを簡素化し、より堅牢なコードに移行するために、カスタムメイドのコードから ORM に切り替えることを考えています。現在、いくつかの「システム」テーブルと可変数の「カスタム」テーブルがあります。これらのカスタム テーブルは、インストールごとに異なります。顧客には請求書に関するテーブルがあり、別の顧客には保険証券に関するテーブルがある場合があります。これらのカスタム テーブルはいつでも追加でき、ユーザーがすぐに利用できるようにする必要があります。DBO スキーマに従って一連の Java クラスを作成しました。各システム テーブル用のクラスと、カスタム テーブル用の 1 つのジェネリック クラスです。また、カスタム レコードをインスタンス化する汎用 Java オブジェクトがあります。このクラスには、 のようなジェネリック メソッドがありObject getProperty(String name)ます。

いくつかの ORM を調べましたが、そのようなカスタム テーブルの使用を簡素化する ORM は見つかりませんでした。

同じような経験をした人はいますか?ありがとう。

4

3 に答える 3

1

たぶん、それはORMよりも優れたクエリマッパーフレームワークのタスクです。

たとえば、MyBatisを使用すると、テーブル名も動的にマッピングできます(MyBatisのパラメーターを介したFROM句の設定を参照) 。

<select id="getLookupRows" parameterType="map" resultMap="lookupMap">
   select id, name, active, valid
   from ${table}
</select>
于 2013-03-04T14:59:46.463 に答える
0

を使用する場合は、完全で成熟したオブジェクト モデルを作成することに集中する必要があります。それが完了すると、オブジェクトをリレーショナル データベースにマッピングすることが自然に続きます。「@JB Nizet」のコメントにあるように、すべてのオブジェクトが必要です。で動作するように適応させると役立つかもしれません。

「動的モデル」と呼ばれる実験的な機能があります。使用する機会がなかったため、詳しくはわかりませんが、いくつかの洞察が得られると思います。また、現時点では実験的な機能であるため、将来変更される可能性があることに注意してください。

于 2012-12-23T12:52:53.820 に答える
0

ActiveJDBC を調べることをお勧めします。モデル属性のテーブル列への動的マッピングに従います。http://javalite.io/setters_and_gettershttp://javalite.io/runtime_discoveryのドキュメントを確認してください。

于 2017-03-25T23:30:35.820 に答える