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

忽略Hibernate实体映射中的类

段干靖
2023-03-14

是否有可能不在HiberNate中的实体层次结构中间为类创建表?

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class BaseObject {
    ...
}

@Entity
public class SubtypeA extends BaseObject {
    ...
}

//@Entity <---- NOT AN ENTITY
public class SubtypeB extends BaseObject {
   ...
}

@Entity <---- ENTITY
public class SubtypeC extends SubtypeB {
   ...
}

我想指出某些实体是某种类型的子集,以便返回所有这些实体的集合,但我不会在此中间类型中放置任何额外的属性。因此,保留带有id字段的额外表只是为了连接表,这听起来并不好。

更好的解决方案是实现一些公共接口< code>CommonInterface,但是这样我就失去了返回< code>List的可能性

共有1个答案

鲍鸿波
2023-03-14

我不知道您的确切用例,但您可以将< code>BaseObject建模为< code>@MappedSuperclass,并让除< code>SubtypeB之外的所有类型扩展一个新类,即< code>BaseEntity,它使用< code > @ Inheritance(strategy = Inheritance type。已加入)。

 类似资料:
  • 我有一个hibernate代码,它与默认的联接列值配合得很好,但是当我将联接列值更改为应用程序约定所需的值时,它开始崩溃。 之前:

  • 我在Kotlin-vertx项目中配置了Hibernate,我设法设置了所有内容,但当我运行HQL查询时,它会输出: 提前谢了。

  • 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中的集合设置为逆?

  • 我使用Hibernate已经有一段时间了,而且非常成功。然而,我昨天遇到了一个问题,这里的答案将在将来节省大量调试时间。 我忘了在我的hibernate中添加hibernate映射。新实体的cfg。 当我试图加载这个实体时,我本以为会得到某种运行时异常,但它却什么也没加载,继续运行,好像一切都很好。 我正在使用以下代码加载实体。 我想一个错误,如果我尝试加载一个实体,没有映射在我的hibernat

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