JPA 表继承和对象映射

Posted

技术标签:

【中文标题】JPA 表继承和对象映射【英文标题】:JPA tables inheritance and object mapping 【发布时间】:2018-02-03 16:58:25 【问题描述】:

是否可以将 baseTable 与基类映射并告诉 JPA 工具不要在类中插入 baseTable 中的文件?

我在我的数据库的每个表中都有我想要的字段创建日期,所以我用该字段创建了一个 baseTable,其他表扩展了这个 baseTable。

当我生成用于映射此结构的类时,japtool 为我创建每个带有创建日期字段的表,显然我只希望在 baseEntity 类中而不是在每个子类中。

有办法实现吗?

【问题讨论】:

【参考方案1】:

如果我正确理解了您的答案,我认为您正在寻找JPA Inheritance

@MappedSuperclass
public class BaseEntity 
@Id
    protected Integer id;
    protected Date createdDate;
    ...

@Entity
public class EntityA extends BaseEntity 
   protected String otherAttribs;
   ...

@Entity
public class EntityB extends BaseEntity 
   protected Float differentAttribs ;
   ...

【讨论】:

谢谢@Andre,这正是我想要的 嗨@AndreaScarafoni,我知道这是一个老问题,但如果它解决了您的问题,请将其标记为答案:)

以上是关于JPA 表继承和对象映射的主要内容,如果未能解决你的问题,请参考以下文章

JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE

JPA继承方式

JPA实体继承实体的映射策略

JPA实体继承实体的映射策略

Spring Boot教程35——Spring Data JPA

数据传输对象 (dto):Hibernate 重复表映射