@MappedSuperclass


  • 親クラスは、継承された親の子クラスにのみマッピング情報を提供し、テーブルにマッピングしません.
  • 抽象クラスに似ています.
    @Entityは実際のテーブルにマッピングされますが、@MappedSuperclassはテーブルにマッピングされません.
  • マッピング情報の継承のみ
  • 関連関係を再定義するときに@AssociationOverrideを使用
    
    @MappedSuperclass
    @Data
    public abstract class BaseEntity {
    
      private Date createdAt;
      private Date updatedAt;
    }
    
    @Data
    @Entity
    @Table(name = "Users")
    public class User extends BaseEntity{
    }
    
      public User(String name, UserTypeEnum userType, Date now) {
        this.name = name;
        this.userType = userType;
        //    this.createdAt = now;
    	//    this.updatedAt = now;
        super.setCreatedAt(now);
        super.setUpdatedAt(now);
        
  • 生成者においてもsuperを使用して親
  • にアクセスする.