【问题标题】:How to avoid duplicate code in JPA Entity如何避免 JPA 实体中的重复代码
【发布时间】:2016-02-29 08:08:46
【问题描述】:

我有 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;
    ...
}

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

【问题讨论】:

标签: java jpa model


【解决方案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等。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 2016-03-02
  • 2020-08-31
  • 2012-06-19
  • 1970-01-01
相关资源
最近更新 更多