해결된 질문
작성
·
380
1
안녕하세요 김영한 강사님^^ 열심히 응용하다가 문제가 생겨 여쭈어봅니다
1. 일반예제 - 메모리 DB
persistence-unit: test
2. 실전예제 - 실제 DB
persistence-unit: jpa_shop
제가 공부 목적으로 DB를 용도별로 나눠 여러 케이스 예제를 만드는 중입니다.
저의 경우는 만들어놓은 엔티티 개수대로 테이블이 생성이 되는데 다음과 같이 EMF를 나누어 특정 DB만 작동되게는 해보았습니다.
예제1) 의 EMF 생성옵션
Persistence.createEntityManagerFactory("mem");
예제2) 의 EMF 생성옵션
Persistence.createEntityManagerFactory("jpa_shop");
그런데 필요없는 다른 챕터의 Member 시리즈 객체 까지
모두 엔티티화 되어 테이블까지 같이 생성이 됩니다.
필요없는 @Entity 를 주석처리 하지않고
특정 앤티티는 생성되지 않게 하는 방법이 있을까요?
패키지 필터 같은 기능이 있는지 궁금합니다.
읽어주셔서 감사합니다.
답변 4
3
적용 초반에 변수가 생겨서 적용하는데 착오가 많았지만
다음과 같이 해결 하였습니다.
<persistence-unit name="유닛명">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>풀페키지.엔티티1</class>
<class>풀페키지.엔티티2</class>
...
...
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
...
...
여기서 주의 하실 점이 있습니다
*** 현 hibernate 5.4 기준 ***
다음 선언 순서를 지켜야 합니다.
1. <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
2. <class>등록할 엔티티</class>
...
...
3. <exclude-unlisted-classes>true</exclude-unlisted-classes>
주신 정보 덕분에 잘 해결되었습니다.
감사합니다^^!!!
1
1
0
같은 고민하고 있었는데 감사합니다!!