> Java > java지도 시간 > JPA가 @Entity로 주석이 달린 엔터티를 자동으로 스캔할 수 있습니까?

JPA가 @Entity로 주석이 달린 엔터티를 자동으로 스캔할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-04 15:06:14
원래의
1002명이 탐색했습니다.

Can JPA Automatically Scan for Entities Annotated with @Entity?

persistence.xml의 자동 엔터티 검색

JPA(Java Persistence API)에서 엔터티는 일반적으로 persistence.xml 배포 설명자에서 선언됩니다. 요소. 하지만 대신 @Entity로 주석이 달린 엔터티를 자동으로 검색하는 메커니즘이 있습니까?

답은 '예'이지만 특정 조건과 제한 사항이 있습니다.

"jar-file 사용 " 요소

persistence.xml 파일에는 엔터티 클래스가 포함된 JAR 파일을 지정하는 요소입니다. 그런 다음 JPA 공급자는 지정된 JAR 파일에서 엔터티를 검색합니다. 이는 JPA 사양에 정의되어 있으며 Hibernate를 포함한 대부분의 JPA 제공업체에서 지원됩니다.

예:

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <jar-file>MyEventractor.jar</jar-file>
        <!-- Explicit listing of entity classes is still allowed -->
        <class>pl.michalmech.eventractor.domain.User</class>
        <class>pl.michalmech.eventractor.domain.Address</class>
        <class>pl.michalmech.eventractor.domain.City</class>
        <class>pl.michalmech.eventractor.domain.Country</class>

        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>
로그인 후 복사

Hibernate 관련 자동 감지 (Java SE)

구체적으로 Hibernate에서는 JPA 사양에서는 이를 요구하지 않으며 Java SE 애플리케이션에서도 엔터티 자동 감지가 지원됩니다. 이를 활성화하려면 지속성 단위에 다음 속성을 추가하세요.

<property name="hibernate.archive.autodetection" value="class, hbm" />
로그인 후 복사

이를 통해 Hibernate는 @Entity로 주석이 달린 클래스와 다음에 의해 지정된 JAR 파일에서 Hibernate 매핑 파일(.hbm.xml)을 검색할 수 있습니다. 요소.

제한 사항

자동 엔터티 검색에 의존하는 것이 항상 모범 사례는 아닐 수도 있다는 점에 유의하는 것이 중요합니다. 클래스 경로 가시성이 동적이거나 충돌하는 엔터티 정의가 있는 여러 모듈이 있는 시나리오에서는 명시적인 클래스 목록을 통해 더 나은 제어를 제공할 수 있습니다.

위 내용은 JPA가 @Entity로 주석이 달린 엔터티를 자동으로 스캔할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿