persistence.xml中不存在Hibernate映射实体

时间:2015-08-23 13:51:15

标签: java hibernate jpa

我正在使用persistence.xml在Hibernate中指定我的映射设置。那就是我使用EntityManager类来获取我的交易。

现在我的persistence.xml

中列出了以下类别
<class>test.entity.Course</class>
<class>test.entity.Semester</class>
<class>test.entity.Subject</class>

同样在我的Eclipse项目中,我还有两个类(Student.java和User.java),这些类标有@Entity注释但未列在persistence.xml文件中。

但是当我运行我的项目时,Hibernate实际上也映射了这两个类。我的意思是它也为这两个类创建了数据库表(我将hbm2ddl设置为auto)。

为什么这样做?是不是只想映射persistence.xml中列出的文件?

2 个答案:

答案 0 :(得分:1)

默认情况下,JPA标准规定,在应用程序服务器环境中,将考虑使用@Entity注释的所有类,无论它们是否在persistence.xml中列出。 如果您确实只想包含persistence.xml中提到的那3个实体,则需要将以下设置添加到persistence.xml文件中的persistence-unit元素中:

{{1}}

答案 1 :(得分:-1)

可以使用persistence.xml或JPA注释配置Hibernate。