네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

엔티티에서 Boolean형을 Database에서는 'Y' 또는 'N'으로 Char(1) 형으로 처리하고 싶을 때 @Converter 어노테이션으 사용하여 해결한다.

1. Converter 객체 생성

BooleanToYNConverter.java

@Converter
public class BooleanToYNConverter implements AttributeConverter<Boolean, String> {
    
    @Override
    public String convertToDatabaseColumn(Boolean attribute) {
        return (attribute != null&& attribute) ? "Y" : "N";
    }
    
    @Override
    public Boolean convertToEntityAttribute(String yn) {
        return "Y".equalsIgnoreCase(yn);
    }
}


* AttributeConverter 인터페이스

public interface AttributeConverter<X, Y> {
    
    Y convertToDatabaseColumn(X var1);
    
    X convertToEntityAttribute(Y var1);
}


2. Entity에 Converter 적용

적용하고 싶은 필드에 @Convert 어노테이션을 붙인다.

@Entity
@Table
@Getter
public class Member {

    // ... 중략 ...
    
    @Covert(converter = BooleanToYNConverter.class)
    private boolean isActive;
}








728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !