Order에서 JPA 메타데이터 분리 - XML 사용
안녕하세요, 강의에서 올려주신 META-INF/orm.xml을 통해 orders의 table과 id가 만들어지는 것을 확인했습니다. 다만 Order의 no가 고유한 값을 가져야한다는 데이터 정합성 관련 SQL(schema.sql의 2,3번째 줄)이 Hibernate에서 표시되지 않는 것을 확인하여 unique="true"를 다음과 같이 넣어주면 원래의 JPA 어노테이션을 대체한 것으로 볼 수 있을지 문의드립니다. 감사합니다.
<basic name="no">
<column name="no" length="255" unique="true"/>
</basic>
Answer 2
1
저도 orm.xml을 실무에서 많이 쓴 것은 아니라서 JPA 스펙을 한번 찾아봤습니다.
JPA 문서를 보면 JPA 애노테이션과 거의 유사하게 XML 항목이 구성되어 있습니다.
@Column 안에 unique를 쓸 수 있는 것처럼 <column> 안에 unique 애트리뷰트를 사용할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 이정수님!
JPA에서 메타데이터를 XML로 정의할 때, Hibernate는 XML 파일에 정의된 설정을 우선하여 사용합니다. 따라서 unique="true"를 XML에서 설정하셨다면, 이는 JPA 애노테이션에서 동일하게 설정한 것과 같은 효과를 가집니다. ORM.xml은 주로 엔티티 클래스 파일에서 애노테이션으로 정의할 수 없는 사항들을 XML을 사용하여 명확히 하고 싶을 때 유용하게 사용됩니다.
그러나 두 가지 주의할 점이 있습니다.
XML 파일이 실제 애플리케이션의 설정에 올바르게 적용되고 있는지 확인하기 위해 Hibernate 관련 설정 파일이 META-INF 경로 아래에 정확히 위치하고 있는지, 그리고 JPA 설정에서 XML 구성을 포함하도록 되어 있는지 확인하시기 바랍니다.
데이터베이스 레벨에서는 유일성을 보장하기 위해 데이터베이스 스키마(SQL 구문)를 조정해야 할 수도 있습니다. JPA 설정은 애플리케이션 레벨에서 정의되어 돌아가기 때문에 데이터베이스 테이블상의 제한 사항과 늘 1:1로 매핑되지 않을 수 있습니다.
아래의 기존 유사 게시물을 통해 추가 정보를 확인해 보실 수 있습니다:
- “토비의 스프링 6 - 이해와 원리”: ORM.xml 구성 및 설정 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수업을 잘 듣고 있습니다.
0
103
2
jackson(3.0.2 버전) ObjectMapper.readValue 에러타입
0
108
2
템플릿과 콜백의 역할 경계를 구분하는 기준
0
99
1
테스트를 작성하지않아도 되는 경우
0
86
2
오브젝트 정의 중 배열에 대해서
0
63
2
스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데
0
109
2
JpaTransactionManager에 대해 궁금합니다.
0
81
2
스프링빈과 Clock 클래스 관련
0
44
2
Seprate Interface 패턴에 대한 궁금증
0
46
2
테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?
0
51
2
오브젝트와 인스턴스
0
38
1
WebApiExRateProvider 템플릿 콜백 패턴을 적용하면서 테스트 코드를 만들어보았습니다.
0
62
2
템플릿 콜백 패턴 관련하여 궁금한 것이 있습니다!
0
59
2
상태 변경 API 질문
0
120
2
빈에 대한 질문
0
97
1
안녕하세요.
0
145
2
Payment 엔티티에 exRateProvider 주입
0
101
1
@Transactional private 사용유무
0
156
1
JdbcClient 생성 질문
0
190
2
안녕하세요 PaymentConfig 질문드립니다.
0
110
2
[공유] 윈도우 사용자를 위한 http 명령어 오류 해결 방법
0
244
2
생성자 파라미터성자 파라미터
0
237
2
토비님 ! BigDecimal 관련 링크를 못찾겠어요
2
343
2
인터페이스 사용에 관하여 질문드립니다.
0
307
3

