MappedSuperclass
We use @MappedSuperclass
to have a bean that holds common properties. For example:
@MappedSuperclass
public abstract class BaseDomain {
@Id
long id;
@Version
long version;
@WhenCreated
Instant whenCreated;
@WhenCreated
Instant whenModified;
// plus getters and setters ...
}
We then create entity
beans that extend the MappedSuperclass
bean.
@Entity
public class Customer extends BaseDomain {
String name;
@ManyToOne
Address billingAddress;
...
}