此问题与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中,因为我的应用程序允许用户按该值进行搜索。
谢谢:)
发布于 2015-09-30 02:38:59
从Spring Data Rest 2.4开始(如果使用spring-boot 1.3.0.M5,这是一个可传递的依赖),您可以使用RepositoryRestConfigurerAdapter。例如,
@Configuration
class SpringDataRestConfig {
@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {
return new RepositoryRestConfigurerAdapter() {
@Override
public void configureRepositoryRestConfiguration(
RepositoryRestConfiguration config) {
config.exposeIdsFor(Class1.class, Class2.class);
}
}
}
}
发布于 2018-02-05 03:38:19
放入@getter,@setters,它将暴露给json结果,希望它能帮助你。
https://stackoverflow.com/questions/24936636
复制相似问题