spring-data-rest提供了一种如何指定实体视图的绝妙方法 - Spring 投影。我很好奇是否有一种方法可以在不使用的情况下实现类似的功能spring-data-rest- 只是存储库和简单的休息控制器。假设我有一个实体:@Entitypublic class Customer { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String firstname; private String lastname; // … }和两个控制器端点。应该返回完整实体和实体的第二个子集(等式 just firstname,尽管真实示例有点复杂)。基本上,我想避免从某些端点返回嵌套集合。我知道我可以通过创建指向同一个表的第二个实体来实现这一点,该表只包含所需的值,但问题是我还必须为它创建一个单独的存储库,它会创建很多不必要的样板。所以我的问题是,我是否需要有两个实体和两个单独的存储库,还是有一些更优雅的方法可以在 Spring 中做到这一点?
2 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
您可以使用 Spring 的属性过滤器从对 API 的响应中过滤掉一些字段:
@RequestMapping(...)
public MappingJacksonValue getUserEntities(...)
Page<UserEntity> entities = service.findAll();
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(entities);
FilterProvider filters = new SimpleFilterProvider()
.addFilter("UserEntity", SimpleBeanPropertyFilter
.filterOutAllExcept("fieldName"));
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}
添加回答
举报
0/150
提交
取消