2010-01-04 3 views
6

persistence.xml에는 2 개의 지속성 단위가 있습니다. 각 요소에는 여러 개의 <class> 요소가 있습니다.<persistence-unit> 요소 내부에서 클래스를 지정해야하는 이유는 무엇입니까?

특정 영속성 단위와 관련된 모든 클래스를 지정해야한다고 생각했습니다. 하지만 우연히 새로운 엔티티에 대한 클래스 요소를 지정하는 것을 잊어 버렸지 만 프로그램이 없어도 제대로 작동했습니다. 그런 다음 모든 클래스 요소를 제거하고 모든 것이 잘 수행되었습니다. 그래서 우리는 왜 그것을 필요로합니까?

샘플 코드 :

<persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL"> 
    <class>chartdemo.model.domain.Category</class> 
</persistence-unit> 

답변

7

persistence.xml 파일에 클래스를 지정하지 않은 경우 지속성 관리자는 persistence.xml 파일이있는 위치 (jar 파일, 클래스 디렉토리)에서 모든 엔티티 클래스를 관리합니다.

목록 클래스를 사용하면 엔터티를 선택하고 지속성 단위로 그룹화 할 수 있습니다. 주어진 영구적 인 유닛 이름으로 구성된 것을 더 세밀하게 제어 할 수 있습니다 - 다른 항아리 등의 엔티티도 포함 할 수 있습니다.

따라서 대부분의 기본 사례 목록 클래스는 필요하지 않으며 JPA 임팩트의 대부분은 모든 엔티티를 검색합니다.

+0

요소 만 사용하여 모든 엔티티 클래스를 관리 할 수 ​​없음을 발견했습니다. – Roman

3

일부 지속성 공급자 (예 : 최대 절전 모드) 엔티티 클래스에 대한 클래스 경로를 검색합니다.

+0

일반적으로 우리는 영속 단위 내에서 클래스 요소를 추가하지 말아야한다는 것을 의미합니까? – Roman

+0

예 (15 자 req) – Bozho

관련 문제