首頁 >Java >java教程 >如何在 JPA 的 persistence.xml 中定義實體?

如何在 JPA 的 persistence.xml 中定義實體?

DDD
DDD原創
2024-11-28 08:02:10440瀏覽

How can I define entities in persistence.xml for JPA?

persistence.xml 中的實體

在Java Persistence API (JPA) 中,persistence.xml 檔案告訴持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性提供者有關持久性性單元的資訊在應用程式中並用作設定檔。它的功能之一是定義持久化單元要管理的實體。

自動實體掃描

JPQL 自動掃描 Java 套件中包含類別的實體在中指定persistence.xml 的元素。但是,這種方法不是強制性的,可以使用其他機制來定義實體。

使用 jar 檔案元素

而不是手動列出實體,您可以使用 jar-file 元素來指定一個或多個包含實體類別的 JAR 檔案。持久性提供者將掃描這些 JAR 檔案中使用 @Entity 註解的類別。

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <jar-file>MyOrderApp.jar</jar-file>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

Hibernate 自動偵測

Hibernate 特別支援實體的自動偵測,即使在Java SE 應用程式。若要啟用此功能,請將hibernate.archive.autodetection 屬性新增至persistence.xml:

<persistence>
    <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
        <!-- Hibernate auto-detection is spec compliant in Java EE only. -->
        <properties>
            <property name="hibernate.archive.autodetection" value="class, hbm" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>

結論

雖然不強制直接在持久化中指定實體.xml,這樣做可以確保對持久性提供者管理哪些類別進行明確控制。使用 jar 檔案元素或 Hibernate 的自動偵測功能在管理實體方面提供了更大的靈活性。

以上是如何在 JPA 的 persistence.xml 中定義實體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn