javax.persistence.MappedSuperclass

1397 ワード

@MappedSuperclass
対応するテーブルを生成しないエンティティ・ベース・クラスを識別します.サブクラスはこのベースクラスを継承し@entryで識別し、サブクラスは対応するテーブル構造を生成します.
eg:

 @MappedSuperclass
    public class Employee {
    
        @Id protected Integer empId;
        @Version protected Integer version;
        @ManyToOne @JoinColumn(name="ADDR")
        protected Address address;
    
        public Integer getEmpId() { ... }
        public void setEmpId(Integer id) { ... }
        public Address getAddress() { ... }
        public void setAddress(Address addr) { ... }
    }
    
    // Default table is FTEMPLOYEE table
    @Entity
    @Table(name="t_FTEmployee")  
    public class FTEmployee extends Employee {
    
        // Inherited empId field mapped to FTEMPLOYEE.EMPID
        // Inherited version field mapped to FTEMPLOYEE.VERSION
        // Inherited address field mapped to FTEMPLOYEE.ADDR fk
        
    
    // Defaults to FTEMPLOYEE.SALARY
    
    protected Integer salary;
    
    
    public FTEmployee() {}
    
    
    public Integer getSalary() { ... }
    
    public void setSalary(Integer salary) { ... }
    }


Employeeはテーブルを生成せず、FTEmployeeはテーブルt_を生成するFTEmployee