簡體   English   中英

Mapstruct:將集合映射到 object

[英]Mapstruct: mapping collection to object

我有一個 function 像這樣:

public HousesDTO mapHouses(Set<Home> roles) {
        HousesDTO homes = new HousesDTO();
        List<HouseDTO> dtos = new ArrayList<HouseDTO>();
        for (Home home : homes) {
            HouseDTO dto = new HouseDTO(home.getAddress(), home.getPrice());
            dtos.add(dto);
        }
          homes.setAllHomes(dtos);
          return homes;
        }
        return null;
    }

如何使用 Mapstruct 做到這一點?

如果你的HouseDTO有一個無參數的構造函數和值的設置器,你可以這樣做:

@Mapper
public interface HousesMapper {
    default HousesDTO toHouses(Set<Home> homes) {
        HousesDTO housesDTO = new HousesDTO();
        housesDTO.setAllHomes(toHousesList(homes));

        return housesDTO;
    }

    List<HouseDTO> toHousesList(Set<Home> homes);
}

如果HouseDTO只有一個期望屬性的構造函數,則剩下三個選項:

  1. 等待支持構造函數實例化的 MapStruct 1.4 版本
  2. 創建一個默認方法,您可以手動將 map 從HomeHouseDTO
  3. 創建 Builder,參見https://mapstruct.org/documentation/stable/reference/html/#mapping-with-builders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM