MappedSuperclass

我们使用 @MappedSuperclass 来拥有一个包含公共属性的 Bean。例如

@MappedSuperclass
public abstract class BaseDomain {

  @Id
  long id;

  @Version
  long version;

  @WhenCreated
  Instant whenCreated;

  @WhenCreated
  Instant whenModified;


  // plus getters and setters ...

}

然后我们创建扩展 MappedSuperclass Bean 的 entity Bean。

@Entity
public class Customer extends BaseDomain {

  String name;

  @ManyToOne
  Address billingAddress;

  ...
}