如何从同一个父级继承2db模型类并使其在hibernate中工作?

hsvhsicv  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(225)

所以在数据库中,我有两个表,其中一些列具有相同的名称/类型。

@Entity
@Data
public class A {
   @Id
   private long id;
   private String name;
   private int age;
}

@Entity
@Data
public class B {
   @Id
   private long id;
   private String name;
   private String email;
}

我想要一个父类 name 字段,所以我不必在类中创建它 A 和阶级 B . 当我必须遍历记录时,这对我也有帮助,因为现在在我的程序中,我有两个99%相同的函数。唯一不同的是类的函数 A 使用这样的循环: for (A a : aList) { a.getname(); } 当另一个 for (B b : bList) { b.getName(); } . 我想把这两个函数变成这样的一个: for (C c : list) { c.getName(); } .
还有他们现在的样子:

@Entity
@Data
public class A extends C {
   @Id
   private long id;
   private int age;
}

@Entity
@Data
public class B extends C {
   @Id
   private long id;
   private String email;
}

@Data
public class C {
   private String name;
}

我不能改变数据库。我只能修改我的java类。例如,我不能把它们放在一张table上。这两个子类有自己的id,它们来自不同的表。
提前谢谢。

mm5n2pyu

mm5n2pyu1#

与此同时,我发现我要做的就是补充 @MappedSuperClass 上课 C .
所以看起来是这样的:

@Data
@MappeedSuperclass
public class C {
   private String name;
}

而且效果很好。

相关问题