我正在使用此方法从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类型的描述符。
我如何解决这个问题?
答案 0 :(得分:0)
我解决了问题
我使用了以下HQL。像魅力一样。
sessionFactory.getCurrentSession().createQuery("from AbstractMenuItem m where m.class in ("
+ itemType.toString() + ")").list();