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


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

Используемый, чтобы переопределить отображение для связи сущностей.

Может быть применен к объекту, который расширяет отображенный суперкласс, чтобы переопределить отображение отношения, определенное отображенным суперклассом. Если не определенный, ассоциация отображается то же самое как в исходном отображении. Когда использующийся переопределять отображение, определенное отображенным суперклассом, AssociationOverride применяется к объекту class.

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

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

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

Если отображение отношения является отображением внешнего ключа, joinColumns элемент используется. Если отображение отношения использует объединяющую таблицу, joinTable элемент должен быть определен, чтобы переопределить отображение объединяющей таблицы и/или ее объединяющих столбцов.

    Example 1: Overriding the mapping of a relationship defined by a mapped superclass

    @MappedSuperclass
    public class Employee {
        ...
        @ManyToOne
        protected Address address;
        ...
    }
    
    @Entity 
        @AssociationOverride(name="address", 
                             joinColumns=@JoinColumn(name="ADDR_ID"))
        // address field mapping overridden to ADDR_ID foreign key
    public class PartTimeEmployee extends Employee {
        ...
    }
 
    Example 2: Overriding the mapping for phoneNumbers defined in the ContactInfo class

    @Entity
    public class Employee {
        @Id int id;
        @AssociationOverride(
          name="phoneNumbers",
          joinTable=@JoinTable(
             name="EMPPHONES",
             joinColumns=@JoinColumn(name="EMP"),
             inverseJoinColumns=@JoinColumn(name="PHONE")
          )
        )
        @Embedded ContactInfo contactInfo;
       ...
    }
 
    @Embeddable
    public class ContactInfo {
        @ManyToOne Address address; // Unidirectional
        @ManyToMany(targetEntity=PhoneNumber.class) List phoneNumbers;
    }
 
    @Entity
    public class PhoneNumber {
        @Id int number;
        @ManyToMany(mappedBy="contactInfo.phoneNumbers")
        Collection<Employee> employees;
     }
    

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

Необходимая Сводка Элемента
 java.lang.String имя
          (Требуемый) имя свойства отношения, отображение которого переопределяется, если основанный на свойстве доступ используется, или имя поля отношения, если основанный на поле доступ используется.
 
Дополнительная Сводка Элемента
 JoinColumn[] joinColumns
          Объединяющий столбец (цы), отображаемый на персистентный атрибут (ы).
 JoinTable joinTable
          Объединяющая таблица, которая отображает отношение.
 

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

имя

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

joinColumns

public abstract JoinColumn[] joinColumns
Объединяющий столбец (цы), отображаемый на персистентный атрибут (ы). joinColumns элементы должны быть определены, если отображение внешнего ключа используется в переопределении отображения отношения. joinColumns элемент не должен быть определен, если объединяющая таблица используется в переопределении отображения отношения.

Значение по умолчанию:
{}

joinTable

public abstract JoinTable joinTable
Объединяющая таблица, которая отображает отношение. joinTable элемент должен быть определен, если объединяющая таблица используется в переопределении отображения отношения. joinTable элемент не должен быть определен, если отображение внешнего ключа используется в переопределении отношения.

С тех пор:
Персистентность Java 2.0
Значение по умолчанию:
@javax.persistence. JoinTable


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

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

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


Spec-Zone.ru - all specs in one place



free hit counter