gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:50:22 24 4
gpt4 key购买 nike

此问题与此 SO 问题 (Spring boot @ResponseBody doesn't serialize entity 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。但是,您可以有选择地通过 exposeIdsFor(..) 启用它。方法。您可以在配置中执行此操作,类似这样

@Configuration
public static class RepositoryConfig extends
RepositoryRestMvcConfiguration {

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

关于java - 在将应用程序迁移到 Spring Boot 后使用 Spring Data Rest 时,我观察到带有 @Id 的实体属性不再编码为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com