java - 我如何在spring boot jpa中编写内部查询
问题描述
我的查询是这样的:
SELECT * FROM property_data p JOIN (SELECT property_id, MAX(date) AS MaxDateTime FROM property_data WHERE property_id IN (18255, 80604, 35983, 41220)GROUP BY property_id) groupedtt ON p.property_id = groupedtt.property_id AND p.date = groupedtt。 MaxDateTime AND p.property_id IN (18255, 80604, 35983, 41220);
我以这种形式写过:
@Query("SELECT p FROM DateWisePropertyInfo p JOIN (SELECT h.property_id, MAX(h.date) AS MaxDateTime FROM DateWisePropertyInfo h WHERE h.property_id IN :hIds GROUP BY h.property_id) p.groupedtt ON p.property_id = groupedtt.property_id AND p.date = groupedtt.MaxDateTime AND p.property_id IN :hIds")
List<DateWisePropertyInfo> findByLatestDateAndPropertyIdIn(@Param("hIds") List<Long> propertyIds);
详细错误:
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1, column 81 [SELECT p FROM com.oyorooms.retention.entity.primary.DateWisePropertyInfo p JOIN (SELECT h.property_id, MAX(h.date) AS MaxDateTime FROM com.oyorooms.retention.entity.primary.DateWisePropertyInfo h WHERE h.property_id IN :hIds GROUP BY h.property_id) p.groupedtt ON p.property_id = groupedtt.property_id AND p.date = groupedtt.MaxDateTime AND p.property_id IN :hIds]
但这不起作用,抛出 InvocationTargetException。
解决方案
推荐阅读
- javascript - 如何映射到一个 Observable 数组中的多个对象?
- javascript - 为什么 Bootstrap Toasts 透明但坚持内容?
- node.js - 对 Angular 组件的图像的 GET 请求返回 404 Not Found
- python - 在python中读取字符串
- c# - ASP.NET Core 5 MVC 在输入表单中显示 Id 作为选择
- reactjs - 在跨浏览器中将图像复制到剪贴板
- google-cloud-kms - Google Cloud KMS 中的密钥轮换
- mysql - 无法从 mariadb 表 InnoDB 中选择
- kubernetes - 平衡多个 HPA 并阻止 pod 被驱逐
- x86 - 什么是分页?操作系统开发