728x90
JPA에서 Boolean 값을 Y와 N으로 변환하여 데이터베이스에 저장하고 다시 불러올 때 Boolean으로 변환하는 방법을 설명해 드리겠습니다. 이를 위해 JPA 컨버터(Converter)를 사용할 수 있습니다.
다음과 같이 컨버터를 구현할 수 있습니다:
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@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 dbData) {
return "Y".equals(dbData);
}
}
이 컨버터는 다음과 같이 동작합니다:
- convertToDatabaseColumn 메서드:
- Boolean true는 "Y"로 변환
- Boolean false 또는 null은 "N"으로 변환
- convertToEntityAttribute 메서드:
- "Y"는 Boolean true로 변환
- 그 외의 값(includin "N")은 Boolean false로 변환
이제 엔티티 클래스에서 이 컨버터를 사용하려면 다음과 같이 할 수 있습니다:
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class SomeEntity {
@Id
private Long id;
@Convert(converter = BooleanToYNConverter.class)
private Boolean active;
// 생성자, getter, setter 등
}
이렇게 하면 active 필드는 데이터베이스에 'Y' 또는 'N'으로 저장되지만, 자바 코드에서는 Boolean 타입으로 사용할 수 있습니다.
이 방법의 장점은 다음과 같습니다:
- 데이터베이스 레벨에서 'Y'/'N' 형식을 유지하면서 자바 코드에서는 Boolean 타입을 사용할 수 있습니다.
- 변환 로직이 한 곳에 집중되어 있어 유지보수가 용이합니다.
- JPA의 네이티브 쿼리나 다른 SQL 도구를 사용할 때 'Y'/'N' 형식과 호환됩니다.
이 컨버터를 사용하면 데이터베이스와 자바 애플리케이션 사이의 Boolean 값 변환을 효과적으로 처리할 수 있습니다.
728x90
'IT 개발 > JPA' 카테고리의 다른 글
[JPA] Boolean 값을 Y, N 값으로 사용하기 - 4 (0) | 2024.09.04 |
---|---|
[JPA] Boolean 값을 Y, N 값으로 사용하기 - 3 (2) | 2024.09.04 |
[JPA] Boolean 값을 Y, N 값으로 사용하기 - 2 (1) | 2024.09.04 |
[JPA] JPA로 데이터 삭제시 삭제 여부 컬럼 이용 방법 (0) | 2024.09.04 |