java - 如何避免 JPA 实体中的重复代码

标签 java jpa model

我有2个对象A和B,它们具有相同的属性,但不同的表。

@Entity
@Table(name = "A")
public class A {

    @Id
    private Integer id;
    ...
}

@Entity
@Table(name = "B")
public class B {

    @Id
    private Integer id;
    ...
}

这会导致重复代码,因为每个属性都是相同的。 解决此类问题的最佳实践是什么?

最佳答案

我会为此创建一个@MappedSupperclass,并从中扩展。它看起来像这样

@MappedSuperclass
public class Common {
    @Id
    private Integer id;
}

@Entity
@Table(name = "A")
public class A extends Common {
    ...
}

@Entity
@Table(name = "B")
public class B extends Common {
    ...
}

这不会创建实体层次结构,而只会移动父类(super class)中的公共(public)实体属性。通常用于 idversioncreatedBy 等。

关于java - 如何避免 JPA 实体中的重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935082/

相关文章:

jquery - 从外部 Javascript 文件访问 ASP.NET MVC 模型数据

java - 如何对选定的数据进行分组?

JPA 和池连接中的 javax.ejb.EJBException

java - 不是 Enum 子项的枚举?

java - 有没有办法在 UI (JavaFX) 中显示 tess4j 进度?

java - 部署到 websphere 时在 hibernate 5 上使用 JPA 2.0

java - 如何使用两种不同模型的两种方法?

javascript - Model.function 不是路由器内的函数

java - 当主代码引用测试代码时,我可以让 eclipse(使用 maven、m2e)抛出错误/警告吗?

java - Spring 批处理 : Why transaction is rolling back even if I catching the exception