当前位置: 首页 > 面试题库 >

子句中的JPA /休眠子查询

南门英飙
2023-03-14
问题内容

我们正在将JPA与hibernate用作提供程序,我们有一个查询,该查询包含一个与FROM子句中的子查询的联接,但是会出现以下错误:

org.hibernate.hql.ast.QuerySyntaxException:意外令牌:(在第1行第75列附近[SELECT sd from
com.hp.amber.datamodel.entities.analysis.SnapshotDates sd,(SELECT
max(x.changeDate)maxChangeDate,x .viewId,x.state from
com.hp.amber.datamodel.entities.analysis.SnapshotDates x WHERE x.changeDate
<:date AND(.viewIds)中的x.viewId和x.state =:state由x.viewId组成的GROUP
x.state)sd2,其中sd.viewId = sd2.viewId和sd.state =:状态AND sd.changeDate =
sd2.maxChangeDate]

这是查询:

SELECT sd 
FROM SnapshotDates sd, 
     (SELECT max(x.changeDate) maxChangeDate, x.viewId, x.state 
      FROM SnapshotDates x
     WHERE x.changeDate<:date AND x.viewId in (:viewIds) AND x.state=:state
GROUP BY x.viewId, x.state) sd2
WHERE sd.viewId = sd2.viewId 
      AND sd.state = :state 
      AND sd.changeDate = sd2.maxChangeDate

谢谢你的帮忙


问题答案:

我不认为HQL可以在from子句中执行子查询

https://docs.jboss.org/hibernate/orm/4.3/manual/zh-
CN/html/ch16.html#queryhql-
subqueries

注意这句话:

请注意,HQL子查询只能在select或where子句中发生。

我想您可以将其更改为本地查询并以这种方式执行。



 类似资料:
  • 问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎完全没有文档,因此我完全不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此这使我在这里提出了疑问。 问题答

  • 问题内容: 我们正在开发一个使用EJB连接到数据库的Web应用程序。 在我们的数据库模型中,我们有一个移动设备表,另一个有功能表,最后一个有手机模型映射功能值的表。模型(id_model,…)功能(id_feature,…)model_features(id_model,id_feature,值) 我们想要执行一个查询,以按匹配特征的数量对模型进行排序。就是说,我们传递了一个要匹配的功能列表(即从

  • 问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误

  • 我有一个类Api,它包含一个数据列表:

  • 问题内容: 使用Java,hibernate。 我有一个查询 我无法使用上面的代码将此参数绑定到pixIds。什么是正确的方法? 注意:这里的查询是我的实际查询的简化版本。 问题答案: 以下方法适用于 公共查询setParameterList(String name,Collection vals)引发HibernateException

  • 问题内容: 我一直在阅读Hibernate文档,但没有发现任何可以解释如何执行以下操作的内容。 我尝试将以下SQL代码转换为HQL: 我遇到的主要问题是我无法在LEFT OUTER JOIN上有两个子句。HQL允许我拥有 ,但是如何添加 问题答案: 您可以使用关键字添加额外的加入条件,如下所示(取决于您的映射): 也可以看看: 16.3。协会和加盟