当前位置: 首页 > 知识库问答 >
问题:

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

谯英彦
2023-03-14

我正在使用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中列出的文件吗?

共有1个答案

朱毅
2023-03-14

默认情况下,JPA标准声明,在application server环境中,使用@Entity注释的所有类都被考虑,无论它们是否列在persistence.xml中。如果您真的想只包括persistence.xml中提到的那3个实体,那么您需要在persistence.xml文件中的persistence-unit元素中添加以下设置:

<exclude-unlisted-classes>true</exclude-unlisted-classes>
 类似资料:
  • 我在Kotlin-vertx项目中配置了Hibernate,我设法设置了所有内容,但当我运行HQL查询时,它会输出: 提前谢了。

  • 我有5个班叫 1.Reqest->与请求表映射 2.Team->与Team表映射 假设我创建了一个bean类,如下所示。 现在,由于我已经用Java类映射了所有表,所以我可以使用hql联接查询来获取数据。 我不想在连接中使用纯SQL查询,然后手动将结果Object[]列表从hibernate查询和存根数据迭代到SummaryBean中。 我的问题是我如何使hibernate将那个查询的结果映射到S

  • 我这里有一个奇怪的问题,如果我错了,请原谅我。 我这里的问题是,我在应用程序中为两个实体定义了一个manytone映射。删除时,我想忽略删除其他实体。 假设Emp到Dept有多个关系,我正在通过会话删除Emp记录。删除(EmpId),此时我不想删除与Emp实体关联的部门。 我不能在hbm中改变级联选项。 这种情况类似于 “如果有10个emp属于部门编号101,并且在删除任何一个emp时,它也将尝试

  • 我对这些技术是新的,所以提前道歉。 我在我的应用程序中使用了springboot、Spring JPA、hibernate和mapstruct。

  • Hi编写Spring应用程序,使用Spring Security。这是我的用户和帐户角色数据库: 我的实体类: 当我尝试登录我的系统我有错误: Hibernate:选择userrolese0_. username作为username3_1_0_,userrolese0_. id作为id1_0_0_,userrolese0_. id作为id1_0_1_,userrolese0_. name作为nam

  • 问题内容: 特定实体存在映射例外。不能弄清楚问题出在哪里。我从头到尾检查了所有映射3次。我仍然收到映射异常。 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 错误是: 电子邮件Pojo email.hbm.xml 相关脚本 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 问题答案: 您是否将Employee中的集合设置为逆?