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

时间:2015-11-26 09:39:05

标签: 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;
    ...
}

它会导致重复的代码,因为每个属性都相同。 做这种问题的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

我为此创建了一个@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 {
    ...
}

这不会创建实体层次结构,但只会移动超类中的公共实体属性。通常用于idversioncreatedBy等。