java - 使用抽象类(不带表)持久保存层次结构的最佳方法是什么

标签 java hibernate jpa persistence

我有一个简单的继承模型:

public abstract class Base {
    int id;
    string name;
}

public class Derived1 extends Base {
   int valueD1;
}

public class Derived2 extends Base {
   int valueD2;
}

我应该如何映射类(使用 JPA 注释),以便为 Derived1 和 Derived2 提供单独的表(每个具体类都有一个表),并且为 Base 提供没有表。

我应该使用@MappedSuperclass、@Embeddable(并跳过继承)还是@Inheritance?

最佳答案

使用@MappedSuperclass,并为每个实体定义不同的表,恕我直言,

但这取决于您是否最有可能查询父类,或者您是否使用两个派生实体,而无需查询两个表。

关于java - 使用抽象类(不带表)持久保存层次结构的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24661064/

相关文章:

java - 使 JPA 持久化上下文识别批量操作所做的更改

java - 安卓 JNI 错误 : Call function with boolean argument causes a crash

java - quartz HelloJob

java - 在 Libgdx 中设置相机旋转

java - 从Java中的多维数组中删除项目

Hibernate MappingException 与 Grails 中具体非域类的继承

java.lang.NoClassDefFoundError : org/hibernate/service/ServiceRegistry after building by Maven

java - CascadeType.ALL 不适用于 FetchType.EAGER

spring - 冲突的持久性单元定义异常

mysql - 重复字段 Hibernate + MySQL [Play 1.2.4]