Hibernate 每个类具有InheritanceType.TABLE\u的辅助表
科西德 及 是否可以将a列放在辅助表中,因此有一个辅助表用于A1,另一个用于A2Hibernate 每个类具有InheritanceType.TABLE\u的辅助表,hibernate,Hibernate,科西德 及 是否可以将a列放在辅助表中,因此有一个辅助表用于A1,另一个用于A2 在Hibernate中,是否有其他方法可以使用InheritanceType.table\u PER\u CLASS拆分表?是的,有-use@SecondaryTable。是的,有-use@SecondaryTable。(在我的例子中,最好使用@OneToOne关系并将字段移动到一个实体 @Entity @Table class B1 extends A { } @Entity @Table class B2 e
在Hibernate中,是否有其他方法可以使用InheritanceType.table\u PER\u CLASS拆分表?是的,有-use@SecondaryTable。是的,有-use@SecondaryTable。(在我的例子中,最好使用@OneToOne关系并将字段移动到一个实体
@Entity
@Table
class B1 extends A {
}
@Entity
@Table
class B2 extends A {
}
在我的例子中,最好使用@OneToOne关系并将字段移动到实体
@Entity
@Table
class B1 extends A {
}
@Entity
@Table
class B2 extends A {
}
它帮助我将B1/B2中的字段映射到列。我想将映射字段保留在A中,对其进行一次注释,使其位于B1和B2的单独辅助表中。我认为不可能将映射字段保留在A中。但您可以使用以下技巧:将B1/B2中的字段映射到列,在中定义一个抽象属性,然后在B1/B2中实现它,返回映射字段。这有助于我将B1/B2中的字段映射到列。我想将映射字段保留在A中,对其进行一次注释,使其位于B1和B2的单独的辅助表中。我认为不可能将映射字段保留在A中。但您可以使用以下技巧:将B1/B2中的字段映射到列,在A中定义一个抽象属性,然后在B1/B2中实现它,返回映射字段。
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
abstract class B {
@Id
int id;
}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
abstract class A {
@Id
int id;
@Column
A a;
}
@Entity
@Table
class A1 extends A {
}
@Entity
@Table
class A2 extends A {
}
@Entity
@Table
class B1 extends A {
@OneToOne
A1 aFields;
}
@Entity
@Table
class B2 extends A {
@OneToOne
A2 aFields;
}