작성
·
103
·
수정됨
0
해당 강의를 수강하고 하루죙일 찾아봤지만 실질적으로는 문제를 해결하지 못했습니다. ㅜㅜ
문제가 왜 발생했는지 추적한 결과
실제로 xml를 불러들일때, fk 관련 속성을 잘 갖고 오지만,
@JoinColumn 을 생성할 때 fk 속성을 삽입하는 코드가 실질적으로 존재하지 않고,
fk제약 조건 생성을 위해 alter 시에
@JoinColumns로 지정됩니다.
실제 어노테이션 기법으로 작성 할 경우
@JoinColumn으로 수집이 되지만,
-참고-
@JoinColumns 으로 수집 시
xml 스펙에서 join-column 태그는 Unbounded로 스펙이 정해져 그렇게 처리 된 거 같아요. 하이버네이트 6.6 버전에서는 jpa 매핑 관련해서 xml 3.1 버전으로 관리되고, 7.0 버전부터는 xml 7버전으로 매핑이 관리될 것 같습니다.
하이버네이트 6.6 버전에선 실질적으로 버그라고 생각되고, 7.0 버전에는 JPAXMLOverridenAnnotationReader 클래스가 사라진 상황이라 7 버전으로 올려서 확인해봐야 할 것 같지만, 스프링 부트 3.x.x버전은 아무래도 하이버네이트 6.6 버전 기준으로 버저닝이 될 거 같아 해당 문제의 해결 방법은 실질적으로 찾진 못했습니다. ㅜ
답변 2
0
안녕하세요.
XML을 이용하는 경우 FK 제약조건에 대한 설정이 적용되지 않는 문제는 저도 확인을 했습니다. 말씀하신 대로 버그인 듯한데 아무도 관심이 없어서 그런지 아직 이슈로도 등록은 안 되어있는 듯합니다. 시간이 날 때 좀 더 추적해보고 리포트를 해보면 좋을 듯합니다.
클린 스프링 강의 시리즈에서는 DDL 자동 생성 기능은 초반이나 테스트에서만 주로 사용하고, 본격적인 운영 시스템 준비를 하면서 SQL DB 마이그레이션 도구를 사용해서 직접 스키마를 관리하려고 합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 임동현님!
질문하신 외래키(FK) 제약 조건 관련 문제는 JPA와 Hibernate의 버전 및 XML 매핑 특성과 연관된 문제로 보입니다. 아래에서 문제를 해결하기 위한 몇 가지 방법을 제시하겠습니다:
Hibernate 버전 확인 및 업데이트:
스프링 부트 버전 확인:
어노테이션 매핑 확인:
@JoinColumn
과 @JoinColumns
를 사용할 때, 각각이 정의하는 외래키 제약 조건의 차이를 이해하셔야 합니다. 각각의 어노테이션이 어떻게 외래키를 생성하고 사용되는지를 이해하는 것이 중요합니다.JPAXMLOverridenAnnotationReader 클래스 문제:
데이터베이스 제약 조건 수동 설정:
이미지를 통해 전해주신 정보를 바탕으로, 위의 방법들을 하나씩 확인하시면서 문제를 해결하실 것을 추천드립니다.
질문자님의 이해를 돕기 위해 아래 링크에서 유사한 질문과 답변을 참고해 보시길 권장드립니다:
- DataSource 자동구성클래스 실습오류 발생
- 어노테이션매핑정보 - 404 오류 문의드립니다
현재 베타 기능으로, 답변에 만족하지 않으실 수도 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
커피 한잔 얻어 먹고 싶었는데 실패했습니다. 감사합니다