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
Java 有没有办法继承一个不是@MappedSuperclass的实体?_Java_Hibernate_Jpa - Fatal编程技术网

Java 有没有办法继承一个不是@MappedSuperclass的实体?

Java 有没有办法继承一个不是@MappedSuperclass的实体?,java,hibernate,jpa,Java,Hibernate,Jpa,假设我有一个JPA实体: @Entity @Table(name = "PARENT") public class Parent { // ... } 是否有任何方法(可能是特定于Hibernate的)在单独的表中创建Parent的子类 @Entity @Table(name = "CHILD") public class Child extends Parent { // ... } 其主要思想是在项目之间共享一个基本包中的一组公共实体类,并仅在需要某些特定于项目的属性时扩

假设我有一个JPA实体:

@Entity
@Table(name = "PARENT")
public class Parent {
    // ...
}
是否有任何方法(可能是特定于Hibernate的)在单独的表中创建
Parent
的子类

@Entity
@Table(name = "CHILD")
public class Child extends Parent {
    // ...
}

其主要思想是在项目之间共享一个基本包中的一组公共实体类,并仅在需要某些特定于项目的属性时扩展它们。

使用
@heritance(strategy=heritancetype.TABLE\u PER\u class)注释父类。
。Hibernate文档(对于版本4.3,新的5.0文档到目前为止似乎缺少这一部分)在手册的和中涵盖了这一点。

@heritance(strategy=heritanceType.TABLE\u PER\u class)
注释父类。Hibernate文档(对于版本4.3,新的5.0文档到目前为止似乎缺少此部分)在手册的和中介绍了这一点。

Hibernate继承:注释映射


@heritance(strategy=InheritanceType.TABLE\u PER\u class)注释父类
。Hibernate文档(对于版本4.3,新的5.0文档到目前为止似乎缺少这一部分)在手册的和中介绍了这一点

在每个具体类一个表的方案中,每个具体类都映射为普通的持久类。因此我们有3张桌子;父级、子级以持久化类数据。在这个方案中,子类的映射重复父类的属性

下面是每个子类方案一个表的优点和缺点。 优势 这是实现继承映射的最简单方法

下面是使用JPA注释映射父实体类和子实体类的示例

@Entity
@Table(name = "Parent")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Parent {

    // Getter and Setter methods, 
}
@继承–定义用于实体类层次结构的继承策略。它在作为实体类层次结构根的实体类上指定

@InheritanceType–定义继承策略选项。TABLE_PER_类是一种按具体类映射表的策略

@Entity
@Table(name="Child")
public class Child extends Parent {

    // Getter and Setter methods, 
}

休眠继承:注释映射


@heritance(strategy=InheritanceType.TABLE\u PER\u class)注释父类
。Hibernate文档(对于版本4.3,新的5.0文档到目前为止似乎缺少这一部分)在手册的和中介绍了这一点

在每个具体类一个表的方案中,每个具体类都映射为普通的持久类。因此我们有3张桌子;父级、子级以持久化类数据。在这个方案中,子类的映射重复父类的属性

下面是每个子类方案一个表的优点和缺点。 优势 这是实现继承映射的最简单方法

下面是使用JPA注释映射父实体类和子实体类的示例

@Entity
@Table(name = "Parent")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Parent {

    // Getter and Setter methods, 
}
@继承–定义用于实体类层次结构的继承策略。它在作为实体类层次结构根的实体类上指定

@InheritanceType–定义继承策略选项。TABLE_PER_类是一种按具体类映射表的策略

@Entity
@Table(name="Child")
public class Child extends Parent {

    // Getter and Setter methods, 
}

非常感谢。尽管文档中并没有直接描述这种方法,但它是有效的。谢谢。尽管文档中并没有直接描述这种方式,但它是有效的。