Java實體對映工具 MapStruct
阿新 • • 發佈:2020-09-12
package com.enjoyit.ocbp.mapstruct; import java.util.List; public interface ObjectMapper<SELF, TARGET> { SELF toSelf(TARGET source); TARGET toTarget(SELF SELF); List<SELF> toSelf(List<TARGET> sources); List<TARGET> toTarget(List<SELF> SELVES); }
定義:
package com.enjoyit.ocbp.data.mapper; import com.enjoyit.ocbp.data.entities.SaleInfoDO; import com.enjoyit.ocbp.mapstruct.ObjectMapper; import com.enjoyit.ocbp.model.dto.SaleInfo; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @Mapper public interface SaleInfoObjectMapper extends ObjectMapper<SaleInfoDO, SaleInfo> { SaleInfoObjectMapper INSTANCE = Mappers.getMapper(SaleInfoObjectMapper.class); }
使用:
SaleInfo物件 轉為 SaleInfoDO物件
private void submitOrder(PosSession session, OrderExchange exchange) { insertRecord(getSaleHeadMapper(), exchange.getSaleHead()); exchange.refreshSlaveRecordList(); insertRecords(getSaleGoodsMapper(), exchange.getSaleGoodsList()); insertRecords(getSaleDiscountMapper(), exchange.getSaleDiscountList()); insertRecords(getSalePayMapper(), exchange.getSalePayList()); insertRecords(getSaleInfoDOMapper(), SaleInfoObjectMapper.INSTANCE.toSelf(exchange.getSaleInfoList())); }
SaleInfoDO物件 轉為 SaleInfo物件
protected List<SaleInfo> selectSaleInfoList(SaleInfoDO saleInfoDO ){ SaleInfoDOMapper mapper = getSaleInfoDOMapper(); List<SaleInfoDO> saleInfoDOS = mapper.select(saleInfoDO); return SaleInfoObjectMapper.INSTANCE.toTarget(saleInfoDOS); }