JPA에서 제공하는 AttributeConverter를 사용하면 DB에 '요청을 날리기 전' / 'DB에 저장된 값을 불러올 때' 자동으로 값을 변환해서 넣어준다.
명세에 있는 첫 번째 제네릭 X는 Entity의 Field 자료형, 두 번째 제네릭 Y는 Database Column 자료형을 나타낸다.
public class ViewTypeConverter implements AttributeConverter<ViewType, Integer> {
@Override
public Integer convertToDatabaseColumn(ViewType viewType) {
if (viewType == null) {
return null;
}
return viewType.getDbValue();
}
@Override
public ViewType convertToEntityAttribute(Integer integer) {
if (integer == null) {
return null;
}
return ViewType.fromDbValue(integer);
}
}
Y convertToDatabaseColumn (X attribute)
: DB에 요청을 전송할 때 수행
X convertToEntityAttribute (Y dbData)
: DB에서 불러온 값을 Entity 필드에 바인딩할 때 수행