当前位置:网站首页>ma.glasnost.orika. MappingException:No converter registered for conversion from Date to LocalDateTime

ma.glasnost.orika. MappingException:No converter registered for conversion from Date to LocalDateTime

2022-07-24 20:28:00 Angry Apple ext

background

  • background orika api Convert to another type of List object , Fields from Date To LocalDateTime Report errors .
  • Detailed exception
ma.glasnost.orika.MappingException: No converter registered for conversion from Date to LocalDateTime, nor any ObjectFactory which can generate LocalDateTime from Date
        at ma.glasnost.orika.impl.DefaultMapperFactory.lookupMapper(DefaultMapperFactory.java:726)
        at ma.glasnost.orika.impl.MapperFacadeImpl.resolveMapper(MapperFacadeImpl.java:568)
        at ma.glasnost.orika.impl.MapperFacadeImpl.resolveMappingStrategy(MapperFacadeImpl.java:178)
        at ma.glasnost.orika.impl.DefaultBoundMapperFacade$BoundStrategyCache.getStrategy(DefaultBoundMapperFacade.java:259)
        at ma.glasnost.orika.impl.DefaultBoundMapperFacade.map(DefaultBoundMapperFacade.java:137)
        ......

Solution

  • Add converter .

import cn.hutool.core.date.DateUtil;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.converter.BidirectionalConverter;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import ma.glasnost.orika.metadata.Type;

import java.time.LocalDateTime;
import java.util.Date;

/** * @author Zhou Zhongqing * @description:  towards Spring Register global objects for object replication  * @date 2022/5/20 14:20 */
@Configuration
public class OrikaMapperFactoryConfig {
    
    @Bean
    public MapperFactory mapperFactory() {
    
        return new DefaultMapperFactory.Builder().build();
    }

    @Bean
    public MapperFacade mapperFacade() {
    
        MapperFactory mapperFactory = mapperFactory();
        // Date  and LocalDateTime  Mutual conversion of 
        mapperFactory.getConverterFactory().registerConverter(new OrikaDateConverter());
        return mapperFactory.getMapperFacade();
    }

    /** * Date  and LocalDateTime  Mutual conversion of  */
    public class OrikaDateConverter extends BidirectionalConverter<Date, LocalDateTime> {
    


        @Override
        public LocalDateTime convertTo(Date source, Type<LocalDateTime> destinationType, MappingContext mappingContext) {
    
            return DateUtil.toLocalDateTime(source);
        }

        @Override
        public Date convertFrom(LocalDateTime source, Type<Date> destinationType, MappingContext mappingContext) {
    
            String format = "yyyy-MM-dd HH:mm:ss";
            String str = DateUtil.format(source, "yyyy-MM-dd HH:mm:ss");
            return DateUtil.parse(str, format);
        }

    }


}

DateUtil It uses hutool Of .

  • When you meet Date Type to LocalDateTime Will enter OrikaDateConverter#convertTo Method . As shown in the figure below .

convertFrom The method is Date Type transfer LocalDateTime You will use

 Insert picture description here

  • In this way, the conversion can be successful .
原网站

版权声明
本文为[Angry Apple ext]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/203/202207210521520210.html

随机推荐