persistence.xml での自動エンティティ スキャン
Java Persistence API (JPA) では、エンティティは通常、persistence.xml デプロイメント記述子で宣言されます。
答えは「はい」ですが、特定の条件と制限があります。
「jar ファイルの使用」 " 要素
persistence.xml ファイルには、
例:
<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 中国語 Web サイトの他の関連記事を参照してください。