7

Hibernate によってデータベース カタログ「アクティブ」のデータベース テーブルにマップされた Person エンティティがあります。一定期間後、「アクティブ」カタログ内のこのデータベース テーブルのレコードは、データベース カタログ「履歴」内のテーブルの正確なコピーにアーカイブ/移動されます。アクティブ カタログと履歴カタログの両方から取得する必要があります。2 つのクラスが拡張される抽象クラスを作成するよりも、Hibernate アノテーションを使用してこれをモデル化するより良い方法はありますか。

これは私が今持っているものです。

@MappedSuperclass
public abstract class Person  {

    @Id
    private Integer id;
    private String name;
}

@Entity
@Table(name="Person", catalog="Active")
public class PersonActive extends Person {
}

@Entity
@Table(name="Person", catalog="History")
public class PersonHistory extends Person {
}
4

3 に答える 3

1

私の知る限り、それは注釈を使用してそれを行う正しい方法です (2 つのテーブルがあるので、2 つのエンティティが必要です)。Person次に、エンティティに対してポリモーフィック クエリを実行します。ちなみに、これはかなりきれいだと思います。

PS: マッピング ファイルを使用してこれを行う方法についてのポインタを追加できますか。私は本当に興味があります。

于 2010-03-04T18:03:06.207 に答える
0

シャードという名前の休止状態のサブプロジェクトがあると思います。複数のリレーショナルデータベースで動作するように設計されています。それを使用したい場合は、コードに大きな変更が必要になる場合があります。

于 2011-05-10T11:46:52.380 に答える