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
提交
取消