0

我正在使用 Spring MVC 和 Hibernate 使用 Netbeans(Maven Web 应用程序)开发一个 Web 应用程序。我有一个带有多个具体类(父、子等)的抽象类(用户)。我选择了一个按层次结构的表结构,以便我有 1 个表,其中包含这些具体类的所有对象。但是我找不到获取某个具体类的所有对象的方法。我收到以下错误:

java.lang.IllegalArgumentException:为 TypedQuery [domain.Parent] 指定的类型与查询返回类型 [class domain.User] 不兼容

任何知道我如何投射这些物体的人?

4

1 回答 1

0

您的 BD 中应该有一个鉴别器列,以及这样的映射:

@DiscriminatorColumn(name="TYPE", discriminatorType=DiscriminatorType.INTEGER)
public abstract class User {

和:

@DiscriminatorValue("1")
public class Parent extends User {

然后您可以在查询中使用属性类。例如:

getSession().createCriteria(User.class).add(Restrictions.eq("class", 1))

或在 HQL 中:

FROM User WHERE class = 1
于 2014-02-28T17:00:37.843 回答