ホームページ > 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 での自動エンティティ スキャン

Java Persistence API (JPA) では、エンティティは通常、persistence.xml デプロイメント記述子で宣言されます。 を使用します。要素。しかし、代わりに @Entity アノテーションが付けられたエンティティを自動的にスキャンするメカニズムはありますか?

答えは「はい」ですが、特定の条件と制限があります。

「jar ファイルの使用」 " 要素

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) をスキャンできるようになります。 element.

制限事項

自動エンティティ スキャンに依存することが常にベスト プラクティスであるとは限らないことに注意することが重要です。クラスパスの可視性が動的であるか、エンティティ定義が競合する複数のモジュールが存在するシナリオでは、明示的なクラスのリストによりより適切な制御が可能になります。

以上がJPA は @Entity アノテーションが付けられたエンティティを自動的にスキャンできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート