无法从表中检索子类对象

时间:2014-02-23 09:20:33

标签: java hibernate inheritance

我正在使用此方法从AbstractMenuItem表中检索Burger类型的对象。注意有很多类扩展AbstractMenuItem类,它们都存储在一个由判别器区分的表中。

    @SuppressWarnings("unchecked")
public List<MenuItem> getBurgers() {
    return sessionFactory
            .getCurrentSession()
            .createQuery("from AbstractMenuItem m where m.class=Burger.class")
            .list();
}

此方法执行时出现以下错误

   org.hibernate.hql.ast.QuerySyntaxException: Invalid path: ''BU'.class' [from com.business.impl.AbstractMenuItem m where m.class=Burger.class]

请注意,BU是Burger类型的描述符。

我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了问题

我使用了以下HQL。像魅力一样。

    sessionFactory.getCurrentSession().createQuery("from AbstractMenuItem m where m.class in ("
                            + itemType.toString() + ")").list();