ENUM데이터 변경관련 질문
97
작성한 질문수 7
package hellojpa;
public enum RoleType {
USER , ADMIN, GUEST , CEO==추가한 데이터(테이블 생성 후)
}
///////
try {
Member member1 = new Member();
member1.setId(5L);
member1.setUsername("하하");
member1.setRoleType(RoleType.CEO);
////////////
<property name="hibernate.hbm2ddl.auto" value="update" />
이러한설정의 상태입니다 영한님도 auto가 update로 되어있는것 같은데
저는 ENUM의 컬럼을 추가하고 적용해서 DB를 생성하려하면 오류가발생합니다
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. DG Y님. JPA에서 ENUM 타입을 다룰 때 발생하는 문제로 보입니다. 먼저, ENUM 타입의 항목을 추가하면서 오류가 발생하는 상황을 설명드려볼게요.
ENUM 타입에 항목을 추가할 때, JPA의 hbm2ddl.auto 설정이 update로 되어 있어도 자동으로 데이터베이스의 스키마를 갱신해주지 않을 수 있습니다. JPA는 기존에 생성된 테이블 및 컬럼에 대한 변경에는 한계가 있으며, 이러한 변동 사항은 수동으로 관리해주는 것이 안전할 수 있습니다.
관련 유사 질문 및 답변 링크:
1. Enum 타입 대신 1:1 매핑
- 이 답변에서는 ENUM 대신 1:1 매핑으로 관리했을 때의 장단점을 설명하고 있습니다. 개념을 이해하는 데 도움이 될 것입니다.
- enum을 list로 어떻게 받는지 궁금합니다.
- JPA에서 ENUM 타입을 활용하는 방법에 대해 설명하고 있으며, LIST로 ENUM을 관리하는 방법에 대한 논의가 포함되어 있습니다.
- JPA에서 ENUM 타입을 활용하는 방법에 대해 설명하고 있으며, LIST로 ENUM을 관리하는 방법에 대한 논의가 포함되어 있습니다.
ENUM 타입의 항목 추가 시 주의점:
- JPA의 update 옵션은 스키마 자체의 변경(새로운 열 추가 또는 열의 제거)에는 대응하지 않는 경우가 많습니다.
- 새로운 ENUM 항목 추가는 JPA에서 스키마를 자동 갱신하지 않기에 직접 DB 스키마를 변경하거나, 엔티티의 변경사항 포착을 위해 수동으로 DDL 스크립트를 실행할 필요가 있습니다.
때로는 이러한 점이 자동화되지 않기 때문에 수동으로 데이터베이스 스키마를 조정하고 변경사항에 대한 DDL 스크립트를 실행해주는 것이 안전할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
33
2
inheritance startegy 선택시 고려사항
0
24
1
Entity 동등성 비교
0
24
1
실무 조언 관련 질문입니다.
0
48
1
H2데이터베이스 파일 생성
0
59
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
57
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
58
1
JPQL 메소드와 락
0
56
1
Delivery @OneToOne
0
62
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
98
2
UnsupportedOperationException 발생
0
89
3
H2 Database 연결이 안됩니다.
0
98
2
연관관계 매핑 질문드립니다.
0
88
2
h2데이터베이스 실행오류
0
110
2
persistence.xml
0
112
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
83
1
영속성 컨텍스트
0
70
1
JPA 프록시
0
100
1
Native Query와 MyBatis
0
73
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
93
1
임베디드 타입 예시 코드 관련 질문
0
121
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
96
3
인텔리제이 패키지 커서 단축키 질문
0
109
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
149
1





