Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 每个类具有InheritanceType.TABLE\u的辅助表_Hibernate - Fatal编程技术网

Hibernate 每个类具有InheritanceType.TABLE\u的辅助表

Hibernate 每个类具有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

科西德

是否可以将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 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;
}