gpt4 book ai didi

java - 将 SQL 转换为 HQL where 子句

转载 作者:行者123 更新时间:2023-11-29 05:42:26 29 4
gpt4 key购买 nike

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

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

我想执行以下 SQL 查询:

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

HQL 似乎不适用于 or 子句,这里是我的网络应用程序中当前的 HQL 语句:

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

感谢任何 Hibernate 查询帮助

问候亚历克斯

最佳答案

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

我强烈假设Deal(Classname首字母大写)中的字段不是deal_status而是status,那么查询一定是这样的。 (我跳过了 c.id 的东西,因为我不知道你的意思。)

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

注意 Deal 上的 D

这仅在 Deal.status 是字符串或类似的东西时有效,但如果它是枚举则无效。处理枚举的一种方法是这样的:

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);

关于java - 将 SQL 转换为 HQL where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702296/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com