Java 为什么需要在内部指定类<;持久性单位>;元素?

Java 为什么需要在内部指定类<;持久性单位>;元素?,java,spring,jpa,persistence,Java,Spring,Jpa,Persistence,我的persistence.xml有两个持久性单元。它们每个都有几个元素 我认为我们必须指定与某个持久性单元相关的所有类。但我不小心忘记为新实体指定class元素,但即使没有它,程序也可以正常运行。然后我删除了所有的类元素,一切都很好。那么,我们为什么需要它呢 示例代码: <persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL"> <class>chartdemo.model.do

我的
persistence.xml
有两个持久性单元。它们每个都有几个
元素

我认为我们必须指定与某个持久性单元相关的所有类。但我不小心忘记为新实体指定class元素,但即使没有它,程序也可以正常运行。然后我删除了所有的类元素,一切都很好。那么,我们为什么需要它呢

示例代码:

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

chartdemo.model.domain.Category

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

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

列出类使您能够灵活地选择实体并将它们分组到持久性单元中。您可以更好地控制由给定的持久化单元名组成的内容-您还可以包括来自其他JAR等的实体


所以,在大多数基本情况下,列出类是不必要的,而且大多数JPA实现都会为您发现所有实体。

这是否意味着在一般情况下,我们不应该在持久化单元中添加class元素?我发现我们可以防止仅使用元素管理所有实体类。