사용자 도구

사이트 도구


java:jpa:converter

문서의 이전 판입니다!


JPA Converter

@Converter
public class PersonNameConverter implements AttributeConverter<PersonName, String> {
 
    @Override
    public String convertToDatabaseColumn(PersonName personName) {
        // object to DB column 구현
    }
 
    @Override
    public PersonName convertToEntityAttribute(String dbPersonName) {
       // DB column to object 구현
}
 
@Entity(name = "PersonTable")
public class Person {
 
    @Convert(converter = PersonNameConverter.class)
    private PersonName personName;
 
    // ...
}

잘못된 Colum Type 매핑

  • AttributeConverter 를 사용하여 String, Number 같은 다소 광의의 타입을 명시적 비즈니스 도메인 타입으로 매핑했을 때(예: ISBN), 보통 해당 타입이 Serializable을 구현하면서 Hibernate가 무조건 VARBINARY로 매핑하는 버그가 있다(현재 5.2.x 버전도 마찬가지)
  • 이때 StandardBasicTypes.java에 나온 타입들을 명시적으로 지정해주면 된다.
@Convert(converter=ISBNConverter.class)
@org.hibernate.annotations.Type(type="string")
private ISBN isbn;
java/jpa/converter.1535542858.txt.gz · 마지막으로 수정됨: 2018/08/29 20:40 저자 kwon37xi