说1有这个简单的结构
@Entity
@Inheritance(strategy = Table_Per_Class)
class A {
@Id
private a;
private b;
}
@Entity
class B extends A{
private c;
}
@Entity
class C extends A{
private d;
}
现在:
A类成员变量是私有的,这意味着它们不会被B类和C类继承。换句话说,B和C类不会有a和b的单独副本。即便如此,我们也可以看到Hibernate为数据库中的B和C表中的a和b创建了单独的列(和值)。我无法理解这一部分。请帮帮我。
答案 0 :(得分:0)
B扩展A.所以B是A.由于A有a
和b
字段,B也有它们。
对象的状态由它拥有的字段集,以及它的超类所具有的字段集,以及超类的超类的字段集等组成。这与Hibernate无关。
如果水果有颜色,如果香蕉是水果,香蕉就有颜色。由于Hibernate持续香蕉的状态,它必须保持其颜色。在Fruit中色域是私有的这一事实没有任何区别。