Open dkdud9261 opened 5 months ago
MongoDB에 컬렉션을 저장하기 위한 객체 클래스를 아래와 같이 정의하면 클래스 내에 정의한 타입과 동일하게 필드가 만들어진다.
data class MyCollection( @Id val id: String? = null, val myField: String )
만약, 객체의 필드 타입과 디비의 필드 타입을 다르게 관리하고 싶다면 아래와 같은 방법을 사용할 수 있다.
예제) 객체에는 MyString Object 타입, 디비에는 String 타입으로 저장하기
객체 필드로 저장하고자 하는 타입 클래스와 같은 패키지 내에 Converter 정의하기
class MyString { val value: String @WritingConverter class MyStringToStringConverter: Converter<MyString, String> { override fun convert(source: MyString): String {} } @ReadingConverter class StringToMyStringConverter: Converter<String, MyString> { override fun convert(source: String): MyString {} } }
MongoCustomConversions 빈 등록하기
@Configuration class MongoConfig { @Bean fun customConversions(): MongoCustomConversions { return MongoCustomConversions( listOf( MyStringToStringConverter(), StringToMyStringConverter() ) ) } }
MongoDB에 컬렉션을 저장하기 위한 객체 클래스를 아래와 같이 정의하면 클래스 내에 정의한 타입과 동일하게 필드가 만들어진다.
만약, 객체의 필드 타입과 디비의 필드 타입을 다르게 관리하고 싶다면 아래와 같은 방법을 사용할 수 있다.
객체 필드로 저장하고자 하는 타입 클래스와 같은 패키지 내에 Converter 정의하기
MongoCustomConversions 빈 등록하기