开源热榜深度解读:浏览器代理与视频生成的技术路线与选型实践
2026/10/22 4:14:37
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