javax.persistence

## Annotation Type JoinColumns

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

Specifies the mapping for composite foreign keys. This annotation groups `JoinColumn` annotations for the same relationship.

When the `JoinColumns` annotation is used, both the `name` and the `referencedColumnName` elements must be specified in each such `JoinColumn` annotation.

        Example:
        @ManyToOne
        @JoinColumns({
            @JoinColumn(name="ADDR_ID", referencedColumnName="ID"),
            @JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP")
        })
        public Address getAddress() { return address; }

See Also:
  `JoinColumn`, `ForeignKey`
Since:
  Java Persistence 1.0

### Required Element Summary

Required Elements
`JoinColumn[]` `value` The join columns that map the relationship.

### Optional Element Summary

Optional Elements
`ForeignKey` `foreignKey` (Optional) Used to specify or control the generation of a foreign key constraint when table generation is in effect.

### Element Detail

#### value

    public abstract JoinColumn[] value

The join columns that map the relationship.

#### foreignKey

    public abstract ForeignKey foreignKey

(Optional) Used to specify or control the generation of a foreign key constraint when table generation is in effect. If both this element and the `foreignKey` element of any of the `JoinColumn` elements are specified, the behavior is undefined. If no foreign key annotation element is specified in either location, the persistence provider's default foreign key strategy will apply.

Since:
  Java Persistence 2.1

Default:
  @javax.persistence.ForeignKey(javax.persistence.ConstraintMode.PROVIDER_DEFAULT)