本文主要是介绍基于grpc从零开始搭建一个准生产分布式应用(6) - 06 - MapStruct常见问题汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、Unknown property "discount" in result type TestMixBO. Did you mean "null"?可能有以种原因:
- 属性名写错了;
- maven中的编译插件中lombok的配置配置在了mapstrut之后,导致lombok注解没有执行;
2、Unknown property "discount" in result type TestMixBO. Did you mean "discountG"?
BO类中属性名和setter/getter方法名称不匹配,这个一般是由人工修改引起的;
3、No property name "discount" exsits in source parameter(s).Did you mean "discountG"?
BO类中属性名和setter/getter方法名称不匹配,这个一般是由人工修改引起的;
4、支持几种lombok注解
@Builder、@AllArgsConstructor
5、用异常代替非空验证?
非空验证时可以不指定@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)属性,直接使用@Mapper
6、proto映射时集合为啥总为空?
原因是proto会把repeat修饰的变量后面默认给加上List后缀。所以映射时需特殊指定一下,如下:
List<WorkflowDto> toDtos(List<WorkflowBo> var1);@Mapping(source = "children", target = "childrenList")
WorkflowDto toDto(WorkflowBo var1);
7、Timestamp转date时时间会多8小时
@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")@Datapublic static class StudyDateRange implements Serializable {@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")@DateTimeFormat(pattern = "yyyy-MM-dd")private Date start;@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")@DateTimeFormat(pattern = "yyyy-MM-dd")private Date end;}
//这主要是时区问题引起的
@Mapping(target = "createdAt" , expression = "java(MapStructMapperUtil.dateToLocalDate(var1.getCtime()))" )
8、@AfterMapping
@AfterMapping
default void setLicenseActivationInfoBo(@MappingTarget LicenseActivationRecordBo bo, ActivationRecordEntity var1) {List<LicenseActivationInfoBo> activationInfo = JSONUtil.toList(var1.getActivationInfo(), LicenseActivationInfoBo.class);int accountTotal = 0;for(LicenseActivationInfoBo item: activationInfo) {accountTotal += item.getAccountLimit();}bo.setAccountLimit(accountTotal);bo.setActivationInfo(activationInfo);
}
9、proto通过优化定义节省传输大小
message MyMessage {//定义一个枚举enum DataType {StudentType = 0;WorkerType = 1;}//用data_type标识传的是那一个枚举DataType data_type = 1;//标示每次枚举类型最多只能出现其中的一个 节省空间oneof dataBody {Student student = 2;Worker worker = 3;}}
这篇关于基于grpc从零开始搭建一个准生产分布式应用(6) - 06 - MapStruct常见问题汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!