Java Hibernate表每类继承查询
假设我有这个简单的结构Java Hibernate表每类继承查询,java,hibernate,Java,Hibernate,假设我有这个简单的结构 @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班的单独副本。即使这样,我们也可以看到
@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创建了单独的列(和值)。我不能理解这部分。请帮帮我 B扩展了A。因此B是A。因为A有
A
和B
字段,所以B也有它们
一个对象的状态是由它拥有的字段集,加上它的超类拥有的字段集,再加上超类的超类的字段集等等组成的,这与Hibernate无关
如果水果有颜色,如果香蕉是水果,香蕉就有颜色。因为冬眠能保持香蕉的状态,所以它必须保持香蕉的颜色。颜色字段在水果中是私有的这一事实没有任何区别。但众所周知,私有字段不是继承的。。甚至java规范都说。。不是吗?它们不能被子类访问,但它们是子类实例状态的一部分。水果没有颜色就没有意义,所以香蕉没有颜色就没有意义。如果在香蕉上调用public
getColor()
方法(返回水果的private color字段),如果香蕉没有处于其状态的字段,该方法将如何工作?