繁体   English   中英

将SQL转换为HQL where子句

[英]Convert SQL into HQL where clause

这应该很容易,但是我的应用程序会抛出不断的错误,而且我是Hibernate的新手。

我正在尝试使用Hibernate在我的Web应用程序中进行简单的HQL查询。

我要执行以下SQL查询:

SELECT * FROM deal WHERE deal_status='A' OR WHERE deal_status='O';

HQL似乎无法使用或子句,这是我的Web应用程序中当前的HQL语句:

FROM deal d where d.deal_status='O' or d.deal_status='A' order by d.id

感谢您对Hibernate查询的任何帮助

关心亚历克斯

  • HQL基于您的实体(而不是您的类别)的字段名称以及“类别名称”
  • c.id -c未定义

我强烈认为Deal(类名首字母大写)中的字段不是deal_status而是status,那么查询必须是这样的。 (我跳过了c.id的内容,因为我不知道您的意思。)

 SELECT d FROM Deal d WHERE d.status='O' or d.status=`A`

注意交易的上层D

而且这仅在Deal.status是String或类似的字符串时才有效,但如果它是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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM