1. 1. @Query 注解中的 countProjection 介绍
countProjection 是 Spring Data JPA 中 @Query 注解的一个属性,专门用于解决原生 SQL(nativeQuery = true)分页查询时,COUNT 查询可能出错的问题。
当你在 @Query 中编写原生 SQL 并使用 Pageable 进行分页时,Spring Data JPA 需要执行两条 SQL:一条查数据,一条查总数。但 JPA 无法像解析 JPQL 那样自动解析原生 SQL 的复杂结构,因此自动生成的 COUNT 查询常常会报错(例如,在 SELECT * FROM … 上硬套一个 COUNT(*) 可能语法正确,但若原查询包含 DISTINCT、子查询等,生成的 SELECT COUNT(*) FROM (原SQL) 就可能完全错误)。
此时,countProjection 就派上了用场。它允许你仅指定 COUNT 查询中 SELECT 后面的投影部分,例如 \”id\” 或 \”1\”,让 Spring Data JPA 用这个投影去自动生成完整的 COUNT 查询。
2. countProjection = \”1\” 与 FROM 子句的关系
是的,
网硕互联帮助中心




评论前必须登录!
注册