문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:jpa:converter [2018/07/11 14:39] kwon37xi 만듦 |
java:jpa:converter [2022/11/11 12:50] kwon37xi |
||
---|---|---|---|
줄 3: | 줄 3: | ||
* [[java: | * [[java: | ||
* [[http:// | * [[http:// | ||
+ | * '' | ||
+ | <code java> | ||
+ | @Converter | ||
+ | public class PersonNameConverter implements AttributeConverter< | ||
+ | |||
+ | @Override | ||
+ | public String convertToDatabaseColumn(PersonName personName) { | ||
+ | // object to DB column 구현 | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public PersonName convertToEntityAttribute(String dbPersonName) { | ||
+ | // DB column to object 구현 | ||
+ | } | ||
+ | @Entity(name = " | ||
+ | public class Person { | ||
+ | |||
+ | @Convert(converter = PersonNameConverter.class) | ||
+ | private PersonName personName; | ||
+ | |||
+ | // ... | ||
+ | } | ||
+ | </ | ||
+ | * '' | ||
+ | * [[java: | ||
+ | * 이때 첫 값과 두번째 값의 '' | ||
+ | * 따라서 Java 기본형들이 아닌 custom class 로 convert 할 경우에는 필히 '' | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ===== 잘못된 Colum Type 매핑 ===== | ||
+ | * AttributeConverter 를 사용하여 String, Number 같은 다소 광의의 타입을 명시적 비즈니스 도메인 타입으로 매핑했을 때(예: ISBN), 보통 해당 타입이 '' | ||
+ | * 이때 [[https:// | ||
+ | |||
+ | <code java> | ||
+ | @Convert(converter=ISBNConverter.class) | ||
+ | @org.hibernate.annotations.Type(type=" | ||
+ | private ISBN isbn; | ||
+ | </ | ||