어떤 경우 사용하나?


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;

	...
}