所以在数据库中,我有两个表,其中一些列具有相同的名称/类型。
@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,它们来自不同的表。
提前谢谢。
1条答案
按热度按时间mm5n2pyu1#
与此同时,我发现我要做的就是补充
@MappedSuperClass
上课C
.所以看起来是这样的:
而且效果很好。