Bir JPA projesinde Entity sınıflarınızda orta özellikler var ise (Örneğin yaratılma tarihi, id vb..) bu özellikleri her Entity class'ına ayrı olarak yazmak yerine super bir class'a yazabilirsiniz. Bunu yapmak için super class aşağıdaki gibi tanımlanmalıdır :
@MappedSuperclass
public class BaseEntity{
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "creation_date")
private Calendar creationDate;
}
Yukarıdaki örnekte yaratılma tarihi özelliği genel bir özellik gibi tanımlanmıştır. Aşağıda bu class'ı extend eden entity class'ı görülmektedir:
@Entity
public class Test extends BaseEntity {
@Column(name = "name")
private String name;
}
Yukarıda yaratılan Test entity class'ı için veritabanında tablo yaratıldığında hem name sütunu hem de creation_date sütunu olacaktır.