poohbar
04/18/2018, 4:09 PMmp
04/18/2018, 4:10 PMfun mapperForConverter(): ObjectMapper = jackson2ObjectMapperBuilder.build()
internal val jackson2ObjectMapperBuilder = Jackson2ObjectMapperBuilder().apply {
modules(JavaTimeModule(), KotlinModule())
featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
}
@Configuration
class SerializationConfiguration {
@Bean
fun objectMapperBuilder(): Jackson2ObjectMapperBuilder = jackson2ObjectMapperBuilder
}
class AddressObjectConverter : AttributeConverter<Address?, String> {
private val objectMapper: ObjectMapper = mapperForConverter()
override fun convertToDatabaseColumn(attribute: Address?) = objectMapper.writeValueAsString(attribute)
override fun convertToEntityAttribute(dbData: String?): Address? = if (dbData == null) {
null
} else {
objectMapper.readValue(dbData, Address::class.java)
}
}