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

关于hibernate继承映射,为什么实体可以在没有表的情况下生存?

吕承望
2023-03-14

在Hibernate继承映射中,JPA每类表策略,

根实体不需要表来映射,

子实体做,每个子实体都有一个表。

在我的理解中,实体是:带有映射配置的java类,它应该映射到一个表,

那么,如果没有要映射的表,根实体如何作为实体存在呢?

如果它不需要一个表来映射,我们为什么不用一个@mappedSuperclass呢?

我们可以使用此根实体进行查询吗?

共有1个答案

仉联
2023-03-14

如果不想拥有根实体的实例,则根实体不需要表。

例如,如果您有一个基本Message类,它有两个子类Email和VoiceMessage,并且只需要Email和VoiceMessage的实例,那么就没有理由为Message创建一个表,因为您永远不会创建任何Message实例:仅创建Email或VoiceMessage的实例。

它与MaspdSuperclass非常不同的是,您仍然可以与基类Message建立toOne或to很多关联。例如,您可以拥有一组已发送消息的Sender实体。您可以通过根消息实体创建查询。此类查询当然会返回VoiceMessage或Email的实例。

 类似资料:
  • 我在配置类中使用spring boot和hibernate。未映射我的实体。请参阅下面的错误。在看了其他一些关于这个的stackoverflow页面后,我仍然无法理解。 我相信以下是正确的:HQL、@实体、@表 错误。 实体。 DAO类 当我将getMessages方法主体替换为以下内容时,它会起作用 数据库表名称为“消息”。 SpringBoot类 Hibernate配置类 我错过了什么?

  • 我正在使用实体框架映射一些表,但除非我声明一些列作为主键,否则我无法这样做。 这里的问题是,数据库中的表没有主键,并且有数百万行。我没有创建新Id列的权限。 Obs:如果我将属性添加到诸如

  • 1. 前言 本节课程和大家一起学习继承映射。通过本节课程的学习,你将了解到: 什么是继承映射; 实现继承映射的 3 种方案。 2. 继承映射 学习继承映射之前,需要搞清楚什么是继承映射? 继承是 OOP 中的概念,其目的除了复用代码之外,还用来描述对象在现实世界中的关系。 为了更好地讲解继承映射,咱们再在数据库中创建一张老师表。数据库中多了一张表,按照使用 Hibernate 的套路,理所当然应该

  • 我在JPA实体映射方面有问题。我有一些课: A级 类别b Classc *如何解决这个问题?*我还能使用类继承吗?还是另一个解决这个的方法? 谢了。

  • 我有以下2个实体: 它们有共享字段/列,例如:等,但是每个主键id字段的名称不同,例如有和 有没有一种方法可以创建一个基本实体超类来保存这些通用的

  • 我需要在我现有的Spring Boot 1.2.5应用程序中编写一些临时代码来执行一些复杂的SQL查询。所谓复杂,我指的是关于4个不同表的单个查询,我有很多这样的表。我们都决定使用现有的SQL来降低新查询出错的潜在风险,在这种情况下,这是一个很好的方法。 我的应用程序使用JPA / Hibernate并将一些实体映射到表。从我的研究来看,似乎我必须做很多实体映射。 我尝试编写一个类,该类只获取Hi