0

私のDBには、テーブル構造がすべてのテーブルで同じである「a_emp_transactions」、「b_emp_transaction」などの名前のテーブルが約20以上あります。基本的に、これらのテーブルは従業員の名前に基づいて分割されます。

今、休止状態を使用してこれらのテーブルで CURD 操作を実行したいのですが、テーブルごとに POJO を作成したくありません。テーブルの名前だけが異なり、構造が同じであるため、単一の POJO を使用し、注釈を使用して現在の従業員名に基づいてその POJO をテーブルに動的にマップする方法はありますか?

4

2 に答える 2

1

DB アーキテクチャに大きな欠陥があると思います。同じフィールドと「EmployeeName/ID」フィールドで ONE を使用する可能性があるのに、なぜ 20 以上のテーブルを使用するのですか?

そうすれば、POJO を単一のテーブルにマップすることができ、IMHO ははるかに一貫性のあるアーキテクチャになります。

于 2012-05-09T07:12:44.177 に答える
0

Hibernate Shards を使用してそれを実現できます。基本的に、Hibernate Shards では「シャーディング」戦略を指定できます。それは、異なるデータベースサーバーまたは単に別々のテーブルにデータを分散させることができます(あなたの場合のようです)。既存の例があなたのケースを完全にカバーするとは思わないので、あなたは確かにあなた自身の戦略を作成したいと思うでしょう:-)

http://docs.jboss.org/hibernate/stable/shards/reference/en/html/shards-shardstrategy.html

ところで、Hibernate Shards でマップされたエンティティのテーブル名を変更できるかどうかはわかりません (おそらく可能ですが、わかりません)。いずれにせよ、それが不可能な場合は、異なる Hibernate Naming Strategies を作成し、各シャードを異なる命名戦略で使用することができます。

于 2012-05-09T10:10:55.467 に答える