私は webapp でトップリンク JPA を使用しており、1 つのテーブルだけをクラス階層にマップしたいと考えています。ほとんどのデータを表す 1 つのクラスと、それを継承する 1 つのクラスが必要です (そのため、スーパークラスのすべてのフィールドと、大量のデータを保持する他のいくつかのフィールドを取得します)。常に大量のデータが必要なわけではなく、リクエストオブジェクトなどに保持したくありません。誰かが要約の1つを選択したときにのみ、大きなビットが必要です。クラスを次のようにセットアップしました(例として簡略化しています)。
@Entity
@Table(name = "TRANSCRIPTS")
@MappedSuperclass //also tried without this - same error
public class Summary {
@Id
@Column(name = "id")
private long id;
@Column(name = "title")
private String title;
//rest of class etc.
}
@Entity
@Table(name = "TRANSCRIPTS")
public class Detail extends Summary {
@Id
@Column(name = "fullText")
private String fullText;
//rest of class etc.
}
この階層を使用してデータを取得しようとすると、次の行に沿ってエラーが発生します
Unknown column 'DTYPE'
したがって、記述子列を探しています。そのような関係ではないので、私は設定していません。
JPAでこの要約/詳細関係をマッピングする別の方法はありますか? または、クラスの継承をあきらめて、2 つの別個の無関係なクラスを作成する必要があります。1 つは要約データを表し、もう 1 つは完全なデータを表します (そして要約フィールドを再定義します)。
ありがとう。