先贴代码:
Person.java
@Data
public class Person {
private String name;
private String des;
private Integer age;
private Double height;
private BigDecimal source;
}
PersonDTO.java
@Data
public class PersonDTO {
private String personName;
private String des;
private Integer age;
private Double height;
private BigDecimal source;
}
Mapper
public interface PersonMapper {
PersonMapper INSTANCE= Mappers.getMapper(PersonMapper.class);
@Mapping(target = "personName",source = "name")
PersonDTO conver(Person person);
}
test类
@Test
public void test(){
Person person = new Person();
person.setDes("测试");
person.setAge(18);
person.setName("张三");
person.setHeight(170.5);
person.setSource(new BigDecimal("100"));
PersonDTO dto= PersonMapper.INSTANCE.conver(person);
System.out.println(dto);
}
ok
目的就是为了简单测试下mapstruct的使用。但是出现了问题。一直都提示Unknown property error问题。反复确认过,我的javabean中确实存在该属性。所以我判断是lombok的问题。查了相关资料,解决方式如下:
1.使用lombok时,需要指定一下path,不然读取有问题。
pom.xml
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
2.如果是 Lombok 1.8.16及以上版本,需增加
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>