/*
 * Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.  The Eclipse Public License is available
 * at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
 * is available at http://www.eclipse.org/org/documents/edl-v10.php.
 */
package javax.persistence;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

Used to override mappings of multiple relationship properties or fields.

   Example:
   @MappedSuperclass
   public class Employee {
       @Id protected Integer id;
       @Version protected Integer version;
       @ManyToOne protected Address address;
       @OneToOne protected Locker locker;
       public Integer getId() { ... }
       public void setId(Integer id) { ... }
       public Address getAddress() { ... }
       public void setAddress(Address address) { ... }
       public Locker getLocker() { ... }
       public void setLocker(Locker locker) { ... }
       ...
   }
   @Entity
   @AssociationOverrides({
       @AssociationOverride(
                  name="address",
                  joinColumns=@JoinColumn("ADDR_ID")),
       @AttributeOverride(
                  name="locker",
                  joinColumns=@JoinColumn("LCKR_ID"))
       })
   public PartTimeEmployee { ... }
See Also:
  • AssociationOverride
Since:Java Persistence 1.0
/** * Used to override mappings of multiple relationship properties or fields. * <p> * <pre> * * Example: * * &#064;MappedSuperclass * public class Employee { * * &#064;Id protected Integer id; * &#064;Version protected Integer version; * &#064;ManyToOne protected Address address; * &#064;OneToOne protected Locker locker; * * public Integer getId() { ... } * public void setId(Integer id) { ... } * public Address getAddress() { ... } * public void setAddress(Address address) { ... } * public Locker getLocker() { ... } * public void setLocker(Locker locker) { ... } * ... * } * * &#064;Entity * &#064;AssociationOverrides({ * &#064;AssociationOverride( * name="address", * joinColumns=&#064;JoinColumn("ADDR_ID")), * &#064;AttributeOverride( * name="locker", * joinColumns=&#064;JoinColumn("LCKR_ID")) * }) * public PartTimeEmployee { ... } * </pre> * * @see AssociationOverride * @since Java Persistence 1.0 */
@Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface AssociationOverrides {
(Required) The association override mappings that are to be applied to the relationship field or property .
/** * (Required) The association override mappings that are to be * applied to the relationship field or property . */
AssociationOverride[] value(); }