pom file
< dependency>
< groupId> org.projectlombok</ groupId>
< artifactId> lombok</ artifactId>
< version> ${lombok.version}</ version>
</ dependency>
< dependency>
< groupId> org.mapstruct</ groupId>
< artifactId> mapstruct-processor</ artifactId>
< version> ${mapstruct.version}</ version>
</ dependency>
< dependency>
< groupId> org.mapstruct</ groupId>
< artifactId> mapstruct</ artifactId>
< version> ${mapstruct.version}</ version>
</ dependency>
java sample
import org. mapstruct. Mapper ;
import org. mapstruct. Mapping ;
import org. mapstruct. Mappings ;
import org. mapstruct. factory. Mappers ;
@Mapper ( componentModel = "spring" )
public interface ComplaintMapper {
ComplaintMapper INSTANCE = Mappers . getMapper ( ComplaintMapper . class ) ;
ComplaintAcceptSheetInVO toOutVO ( ComplaintPersonalMain mainEntity) ;
@Mappings ( {
@Mapping ( source = "params.srvReqstInfo.srvReqstFullName" , target = "title" ) ,
@Mapping ( source = "params.custInfo.acptNum" , target = "acptNum" ) ,
@Mapping ( source = "params.custInfo.callingNum" , target = "callingNum" )
} )
ComplaintPersonalMain toEntity ( ComplaintAcceptSheetInVO inVO) ;
}
jackson configuration
import com. fasterxml. jackson. databind. DeserializationFeature ;
import com. fasterxml. jackson. databind. ObjectMapper ;
import com. fasterxml. jackson. datatype. jsr310. JavaTimeModule ;
import com. fasterxml. jackson. datatype. jsr310. deser. LocalDateDeserializer ;
import com. fasterxml. jackson. datatype. jsr310. deser. LocalDateTimeDeserializer ;
import com. fasterxml. jackson. datatype. jsr310. deser. LocalTimeDeserializer ;
import com. fasterxml. jackson. datatype. jsr310. ser. LocalDateSerializer ;
import com. fasterxml. jackson. datatype. jsr310. ser. LocalDateTimeSerializer ;
import com. fasterxml. jackson. datatype. jsr310. ser. LocalTimeSerializer ;
import org. springframework. context. annotation. Bean ;
import org. springframework. context. annotation. Configuration ;
import org. springframework. context. annotation. Primary ;
import java. time. LocalDate ;
import java. time. LocalDateTime ;
import java. time. LocalTime ;
import java. time. format. DateTimeFormatter ;
@Configuration
public class LocalDateTimeFormatConfig {
private static final String DEFAULT_DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss" ;
private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd" ;
private static final String DEFAULT_TIME_PATTERN = "HH:mm:ss" ;
@Bean
@Primary
public ObjectMapper objectMapper ( ) {
ObjectMapper objectMapper = new ObjectMapper ( ) ;
objectMapper. configure ( DeserializationFeature . FAIL_ON_UNKNOWN_PROPERTIES, false ) ;
JavaTimeModule javaTimeModule = new JavaTimeModule ( ) ;
javaTimeModule. addSerializer ( LocalDateTime . class , new LocalDateTimeSerializer ( DateTimeFormatter . ofPattern ( DEFAULT_DATE_TIME_PATTERN) ) ) ;
javaTimeModule. addSerializer ( LocalDate . class , new LocalDateSerializer ( DateTimeFormatter . ofPattern ( DEFAULT_DATE_PATTERN) ) ) ;
javaTimeModule. addSerializer ( LocalTime . class , new LocalTimeSerializer ( DateTimeFormatter . ofPattern ( DEFAULT_TIME_PATTERN) ) ) ;
javaTimeModule. addDeserializer ( LocalDateTime . class , new LocalDateTimeDeserializer ( DateTimeFormatter . ofPattern ( DEFAULT_DATE_TIME_PATTERN) ) ) ;
javaTimeModule. addDeserializer ( LocalDate . class , new LocalDateDeserializer ( DateTimeFormatter . ofPattern ( DEFAULT_DATE_PATTERN) ) ) ;
javaTimeModule. addDeserializer ( LocalTime . class , new LocalTimeDeserializer ( DateTimeFormatter . ofPattern ( DEFAULT_TIME_PATTERN) ) ) ;
objectMapper. registerModule ( javaTimeModule) ;
return objectMapper;
}
}