Backend/JPA

[JPA] Entity 에 스키마 지정하기

findmypiece 2022. 3. 15. 14:51
728x90

Spring 환경에서 Database 커넥션을 설정할 때 jdbc url을 지정하게 되고 아래와 같이 기본적으로 스키마를 포함한 풀 url을 지정하게 된다.

jdbc:mysql://localhost:3306/TEST

그런데 데이터베이스 안에는 업무상 여러개의 스키마를 만들어서 사용하는 경우가 있고 위와 같이 TEST 스키마로 DB  에 접속했지만 TEST2에 있는 테이블을 Entity 로 추가해서 참조하고 싶은 경우가 있을 수 있다.

 

Mybatis 환경이라면 그냥 쿼리 사용시 테이블 앞에 TEST2. 를 추가해서 사용하면 되지만 jpa 환경에서는 어떻게 할까? 일단 Entity 클래스에 정의하는 @Table 어노테이션을 보면 schema 속성이 있는데 이게 아니고 catalog 속성에 스키마를 정의하면 된다.

 

서칭해보니 schema는 schema 기능이 있는 DB에서 매핑되고 catalog 는 catalog 기능이 있는 DB에서 매핑된다고 한다. 이게 뭔말인지는 모르겠으나 일단 Mysql 기준 우리가 아는 스키마는 catalog 에 지정해야 한다. jdbc 드라이버 스팩이라고 하니 더이상 뭐라 할말이 없다.

 

https://jacojang.github.io/jpa/java/hibernate/2016/12/01/jpa-chapter4-엔티티_매핑.html
https://stackoverflow.com/questions/11184025/what-are-the-jpa-table-annotation-catalog-and-schema-variables-used-for
https://hue9010.github.io/db/mysql_schema/

 

728x90