☰
JPQL SELECT NEW 报 Missing constructor 的原因与修复
2026/10/22 3:15:42 网站建设 项目流程

Spring Data JPA 用 JPQL 的SELECT NEW语法直接把查询结果装进 DTO,是避免返回整个实体、减少数据传输的常用手段。但加上LEFT JOIN、GROUP BY之后,启动时报出Missing constructor,很多排查方向都指向注解或语法,真正的病根常常是构造器的参数类型。

问题现象

仓库接口里写了一段带动态过滤条件的 JPQL:

@Query(""" SELECT NEW com.example.dto.CarsResponseDto( c.id, c.brand, c.model, c.year, c.pricePerHour ) FROM CarsEntity c LEFT JOIN c.location loc LEFT JOIN c.bookings b WHERE (:#{#req.brand} IS NULL OR c.brand = :#{#req.brand}) AND (:#{#req.year} IS NULL OR c.year = :#{#req.year}) G

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询