为什么我们需要在<persistence-unit>元素中指定类?</persistence-unit>

时间:2010-01-04 12:38:57

标签: java spring jpa persistence

我的persistence.xml有2个持久性单位。他们每个人都有几个<class>元素。

我认为我们必须指定与某些持久性单元相关的所有类。但我偶然忘记为新实体指定class-element,但即使没有它,程序也能正常工作。然后我删除了所有类元素,一切正常。那么,为什么我们需要呢?

示例代码:

<persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL">
    <class>chartdemo.model.domain.Category</class>
</persistence-unit>

2 个答案:

答案 0 :(得分:7)

如果未在persistence.xml文件中指定类,则持久性管理器将管理persistence.xml文件所在位置的所有实体类(jar文件,类目录)。

列表类使您可以灵活地选择实体并将它们分组为持久性单元。您可以更精确地控制由给定的持久性单位名称组成的内容 - 您还可以包含来自其他罐子的其他内容。

因此,在大多数基本情况下,列表类是不必要的,并且大多数JPA要求都会为您发现所有实体。

答案 1 :(得分:3)

一些持久性提供程序(例如Hibernate)扫描实体类的类路径。