java混合hibernate继承策略

bjg7j2ky  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(398)

在c#中,我们使用的orm允许我们在每个子类/子类中指定存储它的位置:

[MapInheritance(MapInheritanceType.ParentTable)]  //this means that store employee specific fields in person table
public partial class Employee: Person  
{}

我想在java端使用相同的方法,但在hibernate中,我们在父类中指定策略

我不想要基类的表。我想在user表中存储person和employee。在自己的table上。
但hibernate在这方面似乎有缺点,它要求所有分支都有一个层次结构策略。我希望能够改变下级分支机构的政策。
如何在jpa或hibernate中实现这一点?

wnrlj8wa

wnrlj8wa1#

您可以使用@mappedsuperclass来实现这一点
同一继承层次结构中允许有一个@mappedsuperclass或多个@mappedsuperclass。

@MappedSuperclass
public class FirstMapped {
    @Id int id;
}

@MappedSuperclass
public class SecondMapped extends FirstMapped {
    String createdOn;
}

@Entity
public class MyTable extends SecondMapped {
    String myColumn;
}

这些类只能创建一个表:mytable with columns:
身份证件
createdon公司
菌柱

相关问题