【发布时间】:2020-10-03 09:06:33
【问题描述】:
我有用于连接 3 个表的 mysql 查询,如何将其转换为支持分页的 JPA。 查询:
SELECT promotion.name,
promotion.promotion_type,
promotion.start_date,
promotion.end_date,
promotion_history.`count` AS order_count,
Count(user_promotion_history.promotionid) AS user_count
FROM promotion
INNER JOIN user_promotion_history
ON promotion.promotionid = user_promotion_history.promotionid
INNER JOIN promotion_history
ON promotion.promotionid = promotion_history.promotionid
WHERE promotion.status = "created"
GROUP BY promotion.name,
promotion.promotionid,
promotion.promotion_type,
promotion.start_date,
promotion.end_date,
order_count;
我已经创建了所有实体和存储库类并使用了本机查询,
@Query(value = "select promotion.name, promotion.promotion_type, promotion.start_date, promotion.end_date" +
" promotion_history.count as order_count, count(user_promotion_history.promotionid) as user_count" +
" from promotion" +
" inner JOIN user_promotion_history on" +
" promotion.promotionid = user_promotion_history.promotionid" +
" inner join promotion_history on" +
" promotion.promotionid = promotion_history.promotionid" +
" where promotion.status = :status" +
" group by" +
" promotion.name, promotion.promotionid, promotion.promotion_type, promotion.start_date,promotion.end_date, order_count",
nativeQuery = true)
List<Object[]> findByStatus(@Param("status")PromotionStatus status);
但出现这样的错误。
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 '.count 附近的 order_count, count(user_promotion_history.promotionid) 作为第 1 行的 user_count f'
【问题讨论】:
-
promotion.end_date 和 promotion_history.count as order_count之间缺少逗号>。但是这个错误与分页无关。这是一个语法错误。实现分页(pagination)可能有不同的方式[stackoverflow.com/questions/3799193/….另请阅读键集分页eversql.com/…
-
谢谢。现在加入工作正常。对于分页使用了以下方法,但仍然出现错误,请帮助我。
标签: mysql spring-boot jpa