- 问题背景:使用mapstruct编写接口,接口内容类似如下:
@Mapper public interface CarMapper { CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); @Mapping(source = "numberOfSeats", target = "seatCount") CarDto carToCarDto(Car car); }
- 我的方法:将entity映射为po对象
- 我的用法:springboot工程在service实现类中用@Autowired注入该接口并调用方法报错:绑定异常,找不到xxx包.xxx接口.fromEntityToPo()方法
- 查看官网手册发现调用转换方法的写法如下:
@Test public void shouldMapCarToDto() { //given Car car = new Car( "Morris", 5, CarType.SEDAN ); //when ,直接用接口名.实例对象.方法名()调用 CarDto carDto = CarMapper.INSTANCE.carToCarDto( car ); //then assertThat( carDto ).isNotNull(); assertThat( carDto.getMake() ).isEqualTo( "Morris" ); assertThat( carDto.getSeatCount() ).isEqualTo( 5 ); assertThat( carDto.getType() ).isEqualTo( "SEDAN" ); }
- 解决方案,按官网调用的方式调起方法,无绑定异常
- 运行工程,插入一个实体报错:
ReflectionException: Could not set property ‘id‘ of x argument type mismatch
- 参考博文解决,备份博文内容:
- 参考博文解决,备份博文内容: