[英]Spring projections without Spring Data REST
spring-data-rest
提供了一種神奇的方式來指定實體視圖-Spring projections。 我很好奇是否有一種方法可以在不使用spring-data-rest
情況下實現類似的功能-僅存儲庫和簡單的rest控制器。
假設我有一個實體:
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstname;
private String lastname;
// …
}
和兩個控制器端點。 一個人應該返回完整的實體和該實體的第二個子集(雖然只是第一個firstname
,但實際示例稍微復雜一些)。 基本上,我想避免從某些端點返回嵌套的集合。
我知道我可以通過創建另一個指向僅包含所需值的表的實體來實現這一點,但是問題是我還必須為其創建一個單獨的存儲庫,並且它會創建許多不必要的樣板。
所以我的問題是,我是否需要具有兩個帶有兩個單獨存儲庫的實體,還是在Spring中有一些更優雅的方法?
您可以使用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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.