반응형
Enum: 열거형으로 객체를 새로 생성할 때 사용한다.
코드
package com.example.bookmanager.domain;
public enum Gender {
MALE,
FEMALE
}
User 객체에 추가
private Gender gender;
enum 값을 확인하기 위해 쿼리 작성 (JpaRepository를 상속받은 위치에서 작성한다.)
// enum test
// 사용자가 쿼리를 직접 입력하고 반영할 수 있도록 설정
@Query(value = "select * from user limit 1;", nativeQuery = true)
Map<String, Object> findRawRecord();
테스트 코드
@Test
void enumTest(){
Dto();
User user = userRepository.findById(1L).orElseThrow(RuntimeException::new);
user.setGender(Gender.MALE);
userRepository.save(user);
userRepository.findAll().forEach(System.out::println);
System.out.println(userRepository.findRawRecord().get("gender"));
}
확인
이러한 문제가 발생하면 나중에 열거를 선언한 객체에 값을 추가하게 되면 DB에 입력한 데이터의 매핑된 데이터가 조회되는 데이터가 달라지는 문제가 발생할 수 있다.
따라서 객체 변수에 @Enumerated(value = EnumType.STRING) 어노테이션을 선언해 준다.
@Enumerated(value = EnumType.STRING)
private Gender gender;
참고 사이트
https://lng1982.tistory.com/280
반응형
'Spring > JPA' 카테고리의 다른 글
Entity Listener 사용 예제 2 (0) | 2021.07.18 |
---|---|
Entity Listener (0) | 2021.07.18 |
Entity 기본 속성 (0) | 2021.07.18 |
Query Method 예제 - 5(페이징 처리) (0) | 2021.07.17 |
Query Method 예제 - 4 (정렬) (0) | 2021.07.17 |