我有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)实体属性。通常用于 id
、version
、createdBy
等。
关于java - 如何避免 JPA 实体中的重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935082/