gpt4 book ai didi

java - 在MapStruct映射后实现params转换

转载 作者:行者123 更新时间:2023-11-30 05:31:47 27 4
gpt4 key购买 nike

我想使用 MapStruct 框架并扩展我映射的 Java 类。目前我使用这个:

// @Mapper(config = BaseMapperConfig.class)
public interface MerchantsMapper {

MerchantNewDTO toNewDTO(Merchants merchant);
}

自定义实现:

public MerchantNewDTO toNewDTO(Merchants merchant)
{
MerchantNewDTO merchantNewDTO = new MerchantNewDTO();

merchantNewDTO.setId(Integer.valueOf(merchant.getId()));
......

MerchantConfigurationUtils merchant_config = new MerchantConfigurationUtils();
Map<MerchantConfigurationFeatureBitString, Boolean> features = merchant_config.initFromDatabaseValue(merchant.getSupported_features());

merchantNewDTO.setSupports_api(features.get(MerchantConfigurationFeatureBitString.Supports_api));

return merchantNewDTO;
}

如您所见,我想要获取 getSupported_features 并填充 Supports_api 值。

但是添加新值的过程非常痛苦。有没有某种方法可以创建扩展映射接口(interface)并设置/获取值的适配器?

你能推荐一些解决方案吗?

最佳答案

您可以使用@AfterMapping@BeforeMapping来完成此操作。

@Mapper
public interface MerchantsMapper {

@Mapping(target = "supports_api", ignore = "true")
MerchantNewDTO toNewDTO(Merchant merchant);

@AfterMapping
default applyFeatures(@MappingTarget MerchatNewDTO merchantNewDTO, Merchant merchant) {

MerchantConfigurationUtils merchant_config = new MerchantConfigurationUtils();
Map<MerchantConfigurationFeatureBitString, Boolean> features = merchant_config.initFromDatabaseValue(merchant.getSupported_features());

merchatNewDTO.setSupports_api(features.get(MerchantConfigurationFeatureBitString.Supports_api));
}
}

关于java - 在MapStruct映射后实现params转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com