次のエンティティがあります。
@Entity
@Table(name = "TABLENAME")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="discriminator", discriminatorType=DiscriminatorType.STRING)
public class Base { ... }
@Entity
@DiscriminatorValue("value1")
public class SubEntity1 extends Base {}
@Entity
@DiscriminatorValue("value2")
public class SubEntity2 extends Base {}
結果の実際の型を知らずにクエリを作成する必要があります。何かのようなもの:
select b from Base b where b.discriminator=? and ...
私はこの例外を受け取ります:Object with id: 31 was not of the specified subclass: packagename.Base
この場合、クエリ結果には同じサブエンティティのインスタンスのみが含まれますが、結果が「混合」される他のクエリがあります。
このようなクエリを作成する方法はありますか?