Java EE 6 チュートリアルの関連セクションは次のとおりです。
抽象エンティティ
クラスを で装飾することにより、抽象クラスをエンティティとして宣言できます@Entity
。抽象エンティティは具象エンティティに似ていますが、インスタンス化することはできません。
抽象的なエンティティは、具体的なエンティティと同じようにクエリできます。抽象エンティティがクエリのターゲットである場合、クエリは抽象エンティティのすべての具象サブクラスで動作します。
@Entity
public abstract class Employee {
@Id
protected Integer employeeId;
...
}
@Entity
public class FullTimeEmployee extends Employee {
protected Integer salary;
...
}
@Entity
public class PartTimeEmployee extends Employee {
protected Float hourlyWage;
}
私がこれを正しく読んだ場合、あなたの質問:
select s from Sample where s.type = :type
が識別子列である場合は、指定されたサブタイプの要素のみを返す必要type
があるため、あとは結果リストを要求されたサブタイプにキャストするだけです。