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


@Target(value={TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface AttributeOverride

Используемый, чтобы переопределить отображение a Basic (или явный или значение по умолчанию) свойство или поле или Id свойство или поле.

Может быть применен к объекту, который расширяет отображенный суперкласс или до встроенного поля или свойства, чтобы переопределить основное отображение или отображение идентификатора, определенное отображенным суперклассом или встраиваемым class (или встраиваемым class одного из его атрибутов).

Может быть применен к набору элемента, содержащему экземпляры встраиваемого class или к набору карты, ключом которого и/или значением является встраиваемый class. Когда AttributeOverride применяется к карте,"key."или"value."должен использоваться, чтобы снабдить префиксом имя атрибута, который переопределяется, чтобы определить это как часть ключа карты или значения карты.

Переопределять отображения на многократных уровнях встраивания, точка (". "), форма нотации должна использоваться в name элемент, чтобы указать на атрибут в пределах встроенного атрибута. Значение каждого идентификатора, используемого с записью через точку, является именем соответствующего встроенного поля или свойства.

Если AttributeOverride не определяется, столбец отображается то же самое как в исходном отображении.

    Example 1:

    @MappedSuperclass
    public class Employee {
        @Id protected Integer id;
        @Version protected Integer version;
        protected String address;
        public Integer getId() { ... }
        public void setId(Integer id) { ... }
        public String getAddress() { ... }
        public void setAddress(String address) { ... }
    }

    @Entity
    @AttributeOverride(name="address", column=@Column(name="ADDR"))
    public class PartTimeEmployee extends Employee {
        // address field mapping overridden to ADDR
        protected Float wage();
        public Float getHourlyWage() { ... }
        public void setHourlyWage(Float wage) { ... }
    }
 

    Example 2:

    @Embeddable public class Address {
        protected String street;
        protected String city;
        protected String state;
        @Embedded protected Zipcode zipcode;
    }

    @Embeddable public class Zipcode {
        protected String zip;
        protected String plusFour;
    }

    @Entity public class Customer {
        @Id protected Integer id;
        protected String name;
        @AttributeOverrides({
            @AttributeOverride(name="state",
                               column=@Column(name="ADDR_STATE")),
            @AttributeOverride(name="zipcode.zip",
                               column=@Column(name="ADDR_ZIP"))
        })
        @Embedded protected Address address;
        ...
    }


    Example 3:

    @Entity public class PropertyRecord {
        @EmbeddedId PropertyOwner owner;
        @AttributeOverrides({
            @AttributeOverride(name="key.street", 
                               column=@Column(name="STREET_NAME")),
            @AttributeOverride(name="value.size", 
                               column=@Column(name="SQUARE_FEET")),
            @AttributeOverride(name="value.tax", 
                               column=@Column(name="ASSESSMENT"))
        })
       @ElementCollection
       Map<Address, PropertyInfo> parcels;
    }

   @Embeddable public class PropertyInfo {
       Integer parcelNumber;
       Integer size;
       BigDecimal tax;
   }

 

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

Необходимая Сводка Элемента
 Столбец столбец
          (Требуемый) столбец, который отображается на персистентный атрибут.
 java.lang.String имя
          (Требуемый) имя свойства, отображение которого переопределяется, если основанный на свойстве доступ используется, или имя поля, если основанный на поле доступ используется.
 

Деталь элемента

имя

public abstract java.lang.String name
(Требуемый) имя свойства, отображение которого переопределяется, если основанный на свойстве доступ используется, или имя поля, если основанный на поле доступ используется.


столбец

public abstract Column column
(Требуемый) столбец, который отображается на персистентный атрибут. Отображающийся тип останется тем же самым, как определяется во встраиваемом class или отображенном суперклассе.



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

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

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


Spec-Zone.ru - all specs in one place



free hit counter