これが可能かどうかはわかりませんが、JPAの基本を知っているので、可能かどうか尋ねたいです。基本的に、エンティティ ( と呼びますMyEntity
) があり、その上に多数のフィールドがあります。MyEntity
ここで、すべて同じフィールドに加えて独自のフィールドを持つ 2 番目のエンティティが必要です。これの使用例は、これらのエンティティのアーカイブです。アーカイブされたすべてのエンティティを別のテーブルに保存して、MyEntity
すべてのクエリをarchived=false
. の JPA アノテーションは次のMyEntity
ようになります。
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE")
public abstract class MyEntity
{
....
この抽象クラスを拡張する複数のクラスがあり、それぞれに@DiscriminatorValue
注釈が付いています
アーカイブされたエンティティ ( MyArchivedEntity
) については、次のようなものが必要です。
@Entity
public class MyArchivedEntity
{
private MyEntity entity;
private String archiveSpecificField;
....
MyEntity
もちろん、これの問題は、テーブルに参加して、フィールドMyEntity
に入力するための特定のレコードを取得したいということです。そのエンティティ ( ) からこのエンティティ ( ) にentity
同じフィールド/列を取得するために、ある種の注釈または何かできることはありますか?MyEntity
MyArchivedEntity
最初に言ったように、これが可能かどうかはわかりませんが、達成しようとしていることの最終目標を十分に説明して、それを達成する何らかの方法があることを願っています. 違いがある場合は、EclipseLink で PostgreSQL を使用しています。