我正在使用Spring MVC和Hibernate使用Netbeans(Maven Web应用程序)开发Web应用程序。我有一个抽象类(User),有多个具体类(Parent,Child等)。我选择了每个层次结构的表构造,以便我有1个表,其中包含这些具体类的所有对象。但我无法找到获得某个具体类的所有对象的方法。我收到了以下错误:
java.lang.IllegalArgumentException:为TypedQuery [domain.Parent]指定的类型与查询返回类型[class domain.User]
不兼容任何知道我如何投射这些物品的人?
答案 0 :(得分:0)
您的BD中应该有一个鉴别器columen,以及类似的映射:
@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