시리즈 상세, 시리즈 키워드 번역 엔티티 추가
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
package kr.co.vividnext.sodalive.content.series.translation
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.common.BaseEntity
|
||||||
|
import javax.persistence.Entity
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
class SeriesGenreTranslation(
|
||||||
|
val seriesGenreId: Long,
|
||||||
|
val locale: String,
|
||||||
|
val genre: String
|
||||||
|
) : BaseEntity()
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package kr.co.vividnext.sodalive.content.series.translation
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
|
import com.fasterxml.jackson.module.kotlin.readValue
|
||||||
|
import kr.co.vividnext.sodalive.common.BaseEntity
|
||||||
|
import javax.persistence.AttributeConverter
|
||||||
|
import javax.persistence.Column
|
||||||
|
import javax.persistence.Convert
|
||||||
|
import javax.persistence.Converter
|
||||||
|
import javax.persistence.Entity
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
class SeriesTranslation(
|
||||||
|
val seriesId: Long,
|
||||||
|
val locale: String,
|
||||||
|
|
||||||
|
@Column(columnDefinition = "json")
|
||||||
|
@Convert(converter = SeriesTranslationPayloadConverter::class)
|
||||||
|
var renderedPayload: SeriesTranslationPayload
|
||||||
|
) : BaseEntity()
|
||||||
|
|
||||||
|
data class SeriesTranslationPayload(
|
||||||
|
val title: String,
|
||||||
|
val introduction: String,
|
||||||
|
val keywords: String
|
||||||
|
)
|
||||||
|
|
||||||
|
@Converter(autoApply = false)
|
||||||
|
class SeriesTranslationPayloadConverter : AttributeConverter<SeriesTranslationPayload, String> {
|
||||||
|
|
||||||
|
override fun convertToDatabaseColumn(attribute: SeriesTranslationPayload?): String {
|
||||||
|
if (attribute == null) return "{}"
|
||||||
|
return objectMapper.writeValueAsString(attribute)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun convertToEntityAttribute(dbData: String?): SeriesTranslationPayload {
|
||||||
|
if (dbData.isNullOrBlank()) {
|
||||||
|
return SeriesTranslationPayload(
|
||||||
|
title = "",
|
||||||
|
introduction = "",
|
||||||
|
keywords = ""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return objectMapper.readValue(dbData)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val objectMapper = jacksonObjectMapper()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user