javax.persistence
Тип аннотации MappedSuperclass


@Documented
@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface MappedSuperclass

Определяет class, отображение которого информации применяется к объектам, которые наследовались от этого. У отображенного суперкласса нет никакой отдельной таблицы, определенной для этого.

class, определяемый с MappedSuperclass аннотация может быть отображена таким же образом как объект за исключением того, что отображения будут применяться только к его подклассам, так как никакая таблица не существует для отображенного суперкласса непосредственно. Когда применено к подклассы наследованные отображения будут применяться в контексте таблиц подкласса. Отображение информации может быть переопределено в таких подклассах при использовании AttributeOverride и AssociationOverride аннотации или соответствующие элементы XML.

    Example: Concrete class as a mapped superclass

    @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
    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) { ... }
    }
    
    @Entity @Table(name="PT_EMP")
    @AssociationOverride(
        name="address", 
        joincolumns=@JoinColumn(name="ADDR_ID"))
    public class PartTimeEmployee extends Employee {
    
        // Inherited empId field mapped to PT_EMP.EMPID
        // Inherited version field mapped to PT_EMP.VERSION
        // address field mapping overridden to PT_EMP.ADDR_ID fk
        @Column(name="WAGE")
        protected Float hourlyWage;
    
        public PartTimeEmployee() {}
    
        public Float getHourlyWage() { ... }
        public void setHourlyWage(Float wage) { ... }
    }
 

С тех пор:
Персистентность Java 1.0
См. Также:
AttributeOverride, AssociationOverride



Представьте ошибку или функцию

Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.

Сгенерированный на 10-February-2011 12:41


Spec-Zone.ru - all specs in one place



free hit counter