这应该很容易,但我的应用程序会抛出持续的错误,而且我是Hibernate的新手。
我正在尝试使用Hibernate在我的网络应用中进行简单的HQL查询。
我想执行以下SQL查询:
SELECT * FROM deal WHERE deal_status='A' OR WHERE deal_status='O';
HQL似乎不适用于或者子句,这里是我在我的网络应用程序中的当前HQL语句:
FROM deal d where d.deal_status='O' or d.deal_status='A' order by d.id
感谢任何Hibernate查询帮助
此致 亚历
答案 0 :(得分:3)
c.id
- c未定义我强烈认为Deal(Classname首字母大写)中的字段不是deal_status
但是状态,那么查询必须是这样的。 (我跳过了c.id的东西,因为我不知道你的意思。)
SELECT d FROM Deal d WHERE d.status='O' or d.status=`A`
注意Deal
中的上半部分这只有在Deal.status是String或类似的东西时才有效,但如果是Enum则不行。处理Enum的一种方法是:
Query query = session.createQuery(
"SELECT d FROM Deal d WHERE d.status=:o or d.status=:a");
query.setParameter("a", MyEnum.A);
query.setParameter("o", MyEnum.O);