我有以下实体:
@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
在这种情况下,查询结果将仅包含同一子实体的实例,但我还有其他查询,结果将是“混合”的。
有没有办法进行这样的查询?