2010-01-04 43 views
6

我的persistence.xml有2個持久性單元。他們每個人都有幾個<class>元素。爲什麼我們需要在<persistence-unit>元素內指定類?

我想我們必須指定所有與某個持久性單元有關的類。但我不小心忘記了爲新實體指定class-element,但即使沒有它,程序也能正常工作。然後我刪除了所有類元素,一切正常。那麼,我們爲什麼需要它?

示例代碼:

<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 2010-01-05 11:41:22

3

一些持久性提供(休眠例如)掃描實體類的類路徑。

+0

這是否意味着在一般情況下,我們不應該在持久性單元內添加類元素? – Roman 2010-01-04 12:53:43

+0

yes(15字符req) – Bozho 2010-01-04 12:58:55