javax.persistence
Annotation Type JoinColumn
@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface JoinColumn
Is used to specify a mapped column for joining an entity association.
Example:
@ManyToOne
@JoinColumn(name="ADDR_ID")
public Address getAddress() { return address; }
- Since:
- Java Persistence 1.0
Optional Element Summary |
String |
columnDefinition
(Optional) The SQL fragment that is used when
generating the DDL for the column. |
boolean |
insertable
(Optional) Whether the column is included in
SQL INSERT statements generated by the persistence
provider. |
String |
name
(Optional) The name of the foreign key column. |
boolean |
nullable
(Optional) Whether the foreign key column is nullable. |
String |
referencedColumnName
(Optional) The name of the column referenced
by this foreign key column. |
String |
table
(Optional) The name of the table that contains
the column. |
boolean |
unique
(Optional) Whether the property is a unique key. |
boolean |
updatable
(Optional) Whether the column is included in
SQL UPDATE statements generated by the persistence
provider. |
name
public abstract String name
- (Optional) The name of the foreign key column.
The table in which it is found depends upon the
context. If the join is for a OneToOne or Many-
ToOne mapping, the foreign key column is in the
table of the source entity. If the join is for a
ManyToMany, the foreign key is in a join table.
Default (only applies if a single join column is used):
The concatenation of the following: the name of the
referencing relationship property or field of the referencing
entity; "_"; the name of the referenced primary key column.
If there is no such referencing relationship property or
field in the entity, the join column name is formed as the
concatenation of the following: the name of the entity; "_";
the name of the referenced primary key column.
- Default:
- ""
referencedColumnName
public abstract String referencedColumnName
- (Optional) The name of the column referenced
by this foreign key column. When used with
relationship mappings, the referenced column is
in the table of the target entity. When used inside
a JoinTable annotation, the referenced key column
is in the entity table of the owning entity, or
inverse entity if the join is part of the inverse join
definition.
Default (only applies if single join column is being
used): The same name as the primary key column of the
referenced table.
- Default:
- ""
unique
public abstract boolean unique
- (Optional) Whether the property is a unique key.
This is a shortcut for the UniqueConstraint annotation
at the table level and is useful for when the
unique key constraint is only a single field. It is
not necessary to explicitly specify this for a join
column that corresponds to a primary key that is
part of a foreign key.
- Default:
- false
nullable
public abstract boolean nullable
- (Optional) Whether the foreign key column is nullable.
- Default:
- true
insertable
public abstract boolean insertable
- (Optional) Whether the column is included in
SQL INSERT statements generated by the persistence
provider.
- Default:
- true
updatable
public abstract boolean updatable
- (Optional) Whether the column is included in
SQL UPDATE statements generated by the persistence
provider.
- Default:
- true
columnDefinition
public abstract String columnDefinition
- (Optional) The SQL fragment that is used when
generating the DDL for the column.
Defaults to the generated SQL for the column.
- Default:
- ""
table
public abstract String table
- (Optional) The name of the table that contains
the column. If a table is not specified, the column
is assumed to be in the primary table of the
applicable entity.
- Default:
- ""
Submit a bug or feature Copyright 2006 Sun Microsystems, Inc. All rights reserved.