문서의 이전 판입니다!
@Id
컬럼에 대해서는 Converter 사용이 불가하다(JPA 명세에 불가하다고 나옴). Hibernate User Type 사용해야 할 것 같다.@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; // ... }
AttributeConverter
의 컨버팅 대상이 되는 클래스에 equals
, hashCode
메소드를 명확히 구현할 것.Serializable
을 구현하면서 Hibernate가 무조건 VARBINARY
로 매핑하는 버그가 있다(현재 5.2.x 버전도 마찬가지)@Convert(converter=ISBNConverter.class) @org.hibernate.annotations.Type(type="string") private ISBN isbn;