亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有 Spring Data REST 的 Spring 投影

沒有 Spring Data REST 的 Spring 投影

素胚勾勒不出你 2021-09-12 14:20:42
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 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

您可以使用JSON 視圖過濾掉您需要的字段。下面是一些例子。

或者,您可以創建一個 DTO 而不是一個完整的實體,但恕我直言,這是一種優雅的方法。


查看完整回答
反對 回復 2021-09-12
?
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;

}


查看完整回答
反對 回復 2021-09-12
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號