Строка в Java LocalTime и наоборот с помощью MapstructJAVA

Программисты JAVA общаются здесь
Anonymous
Строка в Java LocalTime и наоборот с помощью Mapstruct

Сообщение Anonymous »


Here is my mapper class

@Mapper(componentModel = "spring") public interface WorkScheduleMapper { @Mapping(source = "dayOfWeek", target = "dayOfWeek") @Mapping(source = "startTime", target = "startTime") @Mapping(source = "endTime", target = "endTime") WorkScheduleDto workScheduleToWorkScheduleDto(WorkSchedule workSchedule); @Mapping(source = "dayOfWeek", target = "dayOfWeek") @Mapping(source = "startTime", target = "startTime") @Mapping(source = "endTime", target = "endTime") WorkSchedule workScheduleDtoToWorkSchedule(WorkScheduleDto workScheduleDto); List workScheduleListToWorkScheduleDtoList(List workSchedules); } and this is what mapstruct generated

@Generated( value = "org.mapstruct.ap.MappingProcessor", date = "2024-03-06T16:49:33+0600", comments = "version: 1.5.5.Final, compiler: javac, environment: Java 18.0.1.1 (Oracle Corporation)" ) @Component public class WorkScheduleMapperImpl implements WorkScheduleMapper { @Override public WorkScheduleDto workScheduleToWorkScheduleDto(WorkSchedule workSchedule) { if ( workSchedule == null ) { return null; } WorkScheduleDto workScheduleDto = new WorkScheduleDto(); List list = workSchedule.getDayOfWeek(); if ( list != null ) { workScheduleDto.setDayOfWeek( new ArrayList( list ) ); } if ( workSchedule.getStartTime() != null ) { workScheduleDto.setStartTime( DateTimeFormatter.ISO_LOCAL_TIME.format( workSchedule.getStartTime() ) ); } if ( workSchedule.getEndTime() != null ) { workScheduleDto.setEndTime( DateTimeFormatter.ISO_LOCAL_TIME.format( workSchedule.getEndTime() ) ); } return workScheduleDto; } @Override public WorkSchedule workScheduleDtoToWorkSchedule(WorkScheduleDto workScheduleDto) { if ( workScheduleDto == null ) { return null; } WorkSchedule workSchedule = new WorkSchedule(); List list = workScheduleDto.getDayOfWeek(); if ( list != null ) { workSchedule.setDayOfWeek( new ArrayList( list ) ); } if ( workScheduleDto.getStartTime() != null ) { workSchedule.setStartTime( LocalTime.parse( workScheduleDto.getStartTime() ) ); } if ( workScheduleDto.getEndTime() != null ) { workSchedule.setEndTime( LocalTime.parse( workScheduleDto.getEndTime() ) ); } return workSchedule; } @Override public List workScheduleListToWorkScheduleDtoList(List workSchedules) { if ( workSchedules == null ) { return null; } List list = new ArrayList( workSchedules.size() ); for ( WorkSchedule workSchedule : workSchedules ) { list.add( workScheduleToWorkScheduleDto( workSchedule ) ); } return list; } } in dto model have field private String startTime and private String endTime.In entity class it is LocalTime startTime and LocalTime endTime how can i map it?

I', using postman and body->form-data because i have to upload image, so the post request is :

workScheduleDto.startTime 09:00 workScheduleDto.endTime 21:00 workScheduleDto.dayOfWeek\[\] MONDAY,TUESDAY,WEDNESDAY why like this? because workSchedule is nested object or inner object (don't know how to call it). and the array of dayOfWeek is coming correct but the startTime and endTime coming as null.


Источник: https://stackoverflow.com/questions/781 ... -mapstruct

Вернуться в «JAVA»