You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级到Spring Boot 2.5.4后Projections投影配置不生效问题求助

Spring Boot 2.5.4 版本Projections投影不生效解决方案
  • 优先修复手动注册投影的代码逻辑:Spring Boot 2.5.x 对应的 Spring Data REST 版本调整了 RepositoryRestConfigurer 接口的方法签名,旧版本单参数的 configureRepositoryRestConfiguration 方法已被移除,你当前写的方法没有重写接口的实现,不会被框架回调,导致手动注册投影逻辑不生效,修改为如下形式即可:
@Configuration
public class RestConfiguration implements RepositoryRestConfigurer {
  @Override
  public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
    config.getProjectionConfiguration().addProjection(WhoDidWhatWhenProjection.class);
  }
}
  • 调整 @RepositoryRestResource 配置:你当前配置了 exported = false,该属性会直接禁止该仓库的REST端点对外暴露,若你需要使用Spring Data REST自动暴露的接口,需将该属性改为 true 或直接删除(默认值为true)。
  • 适配摘录投影的生效规则:Spring Boot 2.5.0 之后,excerptProjection 默认仅对集合查询端点(如 /whoDidWhatWhens)生效,单个资源查询端点(如 /whoDidWhatWhens/1)默认不会应用摘录投影,如需单个资源也应用投影,请求时需携带参数 ?projection=whoDidWhatWhenProjection。
  • 修正投影类型不匹配问题:实体类的id字段为包装类型 Long,你当前投影接口中id返回值为基本类型 long,id为null时会触发拆箱异常,建议修改为 Long getId() 和实体类型保持一致。
  • 补充投影扫描配置:如果你的投影接口和Spring Boot启动类不在同一个包树目录下,需在启动类上添加 @EnableProjection(basePackages = "你的投影接口所在包路径") 注解,指定框架扫描投影的包范围。

内容的提问来源于stack exchange,提问作者simbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:09:02