当前位置: 首页 > 知识库问答 >
问题:

要转换和SQLHibernate查询语言

潘修文
2023-03-14

我有一个要求,我必须转换SQL到HQL。

SQL查询如下所示:

select RT.tableNumber, temp.confirmationNumber from ReservationTable RT, (select R.tableNumber, R.confirmationNumber from Reservation R where R.date = 'someDate' and R.time = 'someTime' and R.reservationStatus = 'CONFIRMED') as temp where RT.tableNumber = temp.tableNumber and RT.tableNumber = 'someTableNumber' ;

我尝试将其转换为以下HQL:

select RT.tableNumber, temp.confirmationNumber from ReservationTable RT, (select R.tableNumber, R.confirmationNumber from Reservation R where R.date = :param1 and R.time = :param2 and R.reservationStatus = 'CONFIRMED') as temp where RT.tableNumber = temp.tableNumber and RT.tableNumber = :param3";

但当我通过Eclipse运行这个HQL时,我得到了以下错误行:

错误:第1:102行:意外标记:(

错误:第1行:146:意外标记:来自

SEVERE: Servlet.service()对于servlet[调度程序]在路径[/RRSRestApp]的上下文中抛出异常[请求处理失败;嵌套异常是org.hibernate.hql.internal.ast.QuerySynTaxExcture:意外令牌:(接近第1行,第102列[选择RT. tableNumber,temp.confirmationcom.kartik.restaurant.model.ReservationTable RT中的编号,(从com.kartik.restaurant.model.Reservation R中选择R. tableNumber,R.确认编号,其中R. date=:参数1和R. time=:参数2和R.保留状态='CONFIRMED')作为temp,其中RT. tableNumber=temp.table编号和RT. tableNumber=:参数3;]]与根本原因org.hibernate.hql.internal.ast.QuerySynTaxExc如出一辙:意外令牌:(第1行附近,第102列[从com.kartik.restaurant.model.ReservationTable RT中选择RT. tableNumber,temp.confirmation号,(从com.kartik.restaurant.model.Reservation R中选择R. tableNumber,其中R. date=:参数1和R. time=:参数2和R.保留状态='确认')作为临时,其中RT. tableNumber=temp.table号和RT. tableNumber=:参数3;]

有人能帮我吗?

共有1个答案

毕泽宇
2023-03-14

根据hibernate文档,HQL子查询只能出现在select或where子句中。

更多详情请关注Hibernate留档

 类似资料:
  • 问题内容: 我在表上有这些数据(使用SQL Server 2005): 我想将其转换为: 现在最困难的部分是:假设我没有其他数据字段指定哪个记录是早餐,午餐或晚餐。我想将它们与最短的开始时间相关联,即,开始时间越短将是早餐,其次就越是午餐,晚餐就越高(假设所有三个(并且只有三个)记录总是被填充)。 有任何想法吗? 问题答案:

  • 问题内容: 我想将以下SQL查询转换为Elasticsearch之一。谁能帮上忙 我尝试了以下方法: 但不确定我是否做对了,因为它无法验证结果。似乎要在聚合内添加查询。 问题答案: 假设您使用Elasticsearch 2.x,则有可能在Elasticsearch中 具有 -semantics。我不知道2.0之前的可能性。 您可以使用新的Pipeline Aggregation Bucket Se

  • 任何帮助都将不胜感激!

  • 问题内容: 我希望能够使用“替换为”语句更新相同架构的表。最后,我需要能够使用可能已更改的值更新大型表。 这是我用来开始的查询: 我不明白的是,数据库引擎如何知道什么是重复行,什么不是?这些数据非常重要,我不能冒险破坏数据。是否简单如“如果列出的所有列都具有相同的值,它就是重复的行”? 我只是想找出一种有效的方法来执行此操作,因此我可以在一分钟内更新> 45,000行。 问题答案: 如文档所述:

  • 问题内容: 多亏了Erwin Brandstetter在我之前的问题“具有has_many关系的订单”中的帮助,我的SQL查询才能正常工作。 如何将该SQL转换为ActiveRecords或AREL查询以在范围中使用? 我最近来的是在朋友的帮助下… …这给了我一个错误: 更新: 我之前的问题对相关的架构和查询有完整的描述。但是基本上Articles have_many Metrics和一个Metr

  • 问题内容: 实际上,我有1个查询,但无法将其转换为CakePHP查询格式。 当我将此查询转换为CakePHP时,会出现如下错误: 问题答案: 您可以轻松地在Cake上运行直接SQL查询,例如:$ this-> Picture-> query(“ SELECT * FROM pictures LIMIT 2;”); 或尝试与此类似的东西: ..确保您已正确链接Esl_Userresults和Esl_