어떤 경우 사용하나?
AttributeConverter Interface
package javax.persistence;
public interface AttributeConverter<X,Y> {
public Y convertToDatabaseColumn (X attribute); // 밸류 타입을 DB 컬럼 값으로 변환
public X convertToEntityAttribute (Y dbData); // DB 컬럼 값을 밸류 타입으로 변환
}
예시
@Converter(autoApply = true)
public class MoneyConverter implements AttributeConverter<Money, Integer> {
@Override
public Integer convertToDatabaseColumn(Money money) {
if (money == null)
return null;
else
return money.getValue();
}
@Override
public Money convertToDatabaseColumn(Integer value) {
if (value == null)
return null;
else
return new Money(value);
}
}
@Converter(autoApply = false)
public class MoneyConverter implements AttributeConverter<Money, Integer> {
...
}
public class Order {
...
@Column(name = "total_amounts")
@Converter(converter = MoneyConverter.class)
private Money totalAmounts;
...
}