0

我有以下实体:

@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

在这种情况下,查询结果将仅包含同一子实体的实例,但我还有其他查询,结果将是“混合”的。

有没有办法进行这样的查询?

4

1 回答 1

1

您正在尝试检索根级别 parent Entity@DiscriminatorValue(value = "your_base")如果是这样,您需要添加Base实体类。即使没有它的子类,也可以。它已经在这里发布。

于 2012-10-23T21:06:51.857 回答