실무 환경에서 설계를 하다보면, DB 스키마가 분리되어 있는 경우가 있다.
특히 JPA를 사용하는 환경에서 스키마가 분리되는 경우는 그다지 권장되지는 않는 듯 하지만, 어쩔수 없는 경우도 있으니까..
@Entity
@Table(name = "my_entity", catalog = "second_schema")
public class MyEntity {...}
메인 스키마가 있는 경우 다른 스키마에 테이블이 있는 경우
Entity의 Table 어노테이션에 catalog 옵션을 주어 JPA 테이블이 해당 엔티티를 바라보도록 설정할 수 있었다.
문제는 테스트코드 작성시 H2 Database를 사용하고 있었는데, 기본 설정만으로는 해당 테이블을 인식하지 못해 테스트를 통과하지 못하고 있다는 것이다.
이 때 테스트코드의 datasource 의 url 옵션에 FALSE;INIT=create schema if not exists SECOND_SCHEMA; 옵션을 주어 해결할 수 있었다.
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL;IGNORECASE=TRUE;DB_CLOSE_ON_EXIT=FALSE;INIT=create schema if not exists SECOND_SCHEMA
일단 여기까지는 진행되었으나, Dbunit을 사용하는 환경에서 xml의 더미 데이터들이 여전히 테이블을 인식하지 못하고 있었다. 이 부분은 해결 후 추가하는 것으로...
'개발 > DB' 카테고리의 다른 글
[DB] 인덱스를 내 의도대로 설정하자 (0) | 2024.01.07 |
---|---|
[DB] 사용자에 따라 다른 Timezone 결과 조회하기(MariaDB) (0) | 2023.11.19 |
[MySQL] 내가 원하는 순서대로 Order by 조건을 주자 (0) | 2023.03.01 |
[DB]격리수준(Isolation Level) (0) | 2022.05.28 |