当前位置: 首页 > 面试题库 >

在将应用程序迁移到Spring Boot后使用Spring Data Rest时,我注意到带有@Id的实体属性不再编组为JSON

陆子石
2023-03-14
问题内容

这个问题与此SO问题有关(Springboot@ResponseBody不会序列化实体id)。我观察到,将应用程序迁移到Spring
Boot并使用spring-boot-starter-data-rest依赖关系后,我的实体@Id字段不再编组到结果JSON中。

这是我的请求映射,在调试时,我可以看到数据在返回之前没有被更改,因此稍后会删除@Id属性。

@RequestMapping(method = RequestMethod.GET, produces = {"application/json"})
public PagedResources<Receipt> receipts(Pageable pageable, PagedResourcesAssembler assembler) {
    Page<Receipt> receipts = receiptRepository.findByStorerAndCreatedDateGreaterThanEqual("003845", createdStartDate, pageable);
    PagedResources<Receipt> pagedResources = assembler.toResource(receipts, receiptResourceAssembler);
    return pagedResources;
}

是否有一个设置可以让我将@Id字段保留在结果JSON中,因为我的应用程序允许用户按该值进行搜索。

谢谢 :)


问题答案:

默认情况下,Spring Data
Rest不吐出ID。但是,您可以通过ExposureIdsFor(..)方法
有选择地 启用它。您可以在配置中执行以下操作

@Configuration
public static class RepositoryConfig extends
        RepositoryRestMvcConfiguration {

    @Override
    protected void configureRepositoryRestConfiguration(
            RepositoryRestConfiguration config) {
        config.exposeIdsFor(Class1.class, Class2.class);
    }
}


 类似资料:
  • 问题内容: 这个问题与此SO问题有关(Spring boot @ResponseBody不会序列化实体id)。我观察到,在将应用程序迁移到Spring Boot并使用spring-boot-starter-data-rest依赖关系之后,我的实体@Id字段不再编组到结果JSON中。 这是我的请求映射,在调试时,我可以看到数据在返回之前没有被更改,因此稍后将删除@Id属性。 是否有一个设置可以让我将

  • 这个问题与这个SO问题相关(Spring boot@ResponseBody不序列化实体id)。我注意到,在将应用程序迁移到Spring Boot并使用spring-boot-starter-data-rest依赖项之后,我的entity@id字段不再在生成的JSON中封送。 这是我的请求映射,在调试时,我可以看到数据在返回之前没有被更改,因此@id属性稍后会被删除。 是否有一个设置允许我在生成的

  • 在一个spring boot应用程序中,我用webclient给ms打了一个电话 响应实体响应 = webClient.post() .uri(“/auth/login”) .body(Mono.just(loginRequest), LoginDto.class) .retrieve() .toEntity(LoginResponse.class) .block(); 在我把角色放到一个集合中之

  • 我正试图将运行在tomcat上的现有应用程序更改为SpringBoot。它一直运行到真正的SpringBoot启动。我有一个类似的应用程序运行在SpringBoot上。这就是我知道它一直运行到Springboot的原因。 我的主要方法: 我尝试使用@componentscan运行main方法,该方法具有如下所示的basePackages: 这无济于事。我尝试在main类的顶部添加@SpringBo

  • 我必须将昨天添加的一位同事的迁移应用到我的本地数据库: 问题是我的表中已经有数据并且迁移失败: 有什么方法可以避免这种冲突,而不必清除< code>Document表中的所有数据?

  • 我正在探索将java web应用程序移动到Azure应用程序服务的可能性。应用程序on prem在启动时读取属性文件。 是否有可能将属性文件传递或放置到应用服务?如果没有,建议将此类遗留应用程序移动到Azure应用服务?