javax.persistence.MapKeyJoinColumn - JPA annotation
javax.persistence
Annotation MapKeyJoinColumn
- Target:
- Fields (including property get methods)
MapKeyJoinColumn
annotation is specified, a single join column is assumed and the default values apply. Example 1:
@Entity public class Company { @Id int id; ... @OneToMany // unidirectional @JoinTable(name="COMPANY_ORGANIZATION", joinColumns=@JoinColumn(name="COMPANY"), inverseJoinColumns=@JoinColumn(name="VICEPRESIDENT")) @MapKeyJoinColumn(name="DIVISION") Map organization; }
Example 2:
@Entity public class VideoStore { @Id int id; String name; Address location; ... @ElementCollection @CollectionTable(name="INVENTORY", joinColumns=@JoinColumn(name="STORE")) @Column(name="COPIES_IN_STOCK") @MapKeyJoinColumn(name="MOVIE", referencedColumnName="ID") Map videoInventory; ... } @Entity public class Movie { @Id long id; String title; ... }
Example 3:
@Entity public class Student { @Id int studentId; ... @ManyToMany // students and courses are also many-many @JoinTable(name="ENROLLMENTS", joinColumns=@JoinColumn(name="STUDENT"), inverseJoinColumns=@JoinColumn(name="SEMESTER")) @MapKeyJoinColumn(name="COURSE") Map enrollment; ... }
- Since:
- JPA 2.0
- Default value:
- ""
- Since:
- JPA 2.0
- Default value:
- true
- Since:
- JPA 2.0
- If the join is for a map key for an element collection, the foreign key column is in the collection table for the map value.
- If the join is for a map key for a ManyToMany entity relationship or for a OneToMany entity relationship using a join table, the foreign key column is in a join table.
- If the join is for a OneToMany entity relationship using a foreign key mapping strategy, the foreign key column for the map key is in the table of the entity that is the value of the map.
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 or embeddable class; "_"; "KEY".
- Default value:
- ""
- Since:
- JPA 2.0
- Default value:
- false
- Since:
- JPA 2.0
Default (only applies if single join column is being used.) The same name as the primary key column of the referenced table
- Default value:
- ""
- Since:
- JPA 2.0
- If the join is for a map key for an element collection, the foreign key column is in the collection table for the map value.
- If the join is for a map key for a ManyToMany entity relationship or for a OneToMany entity relationship using a join table, the foreign key column is in a join table.
- If the join is for a OneToMany entity relationship using a foreign key mapping strategy, the foreign key column for the map key is in the table of the entity that is the value of the map.
Default:
- If the map is for an element collection, the name of the collection table for the map value.
- If the map is for a OneToMany or ManyToMany entity relationship using a join table, the name of the join table for the map.
- If the map is for a OneToMany entity relationship using a foreign key mapping strategy, the name of the primary table of the entity that is the value of the map.
- Default value:
- ""
- Since:
- JPA 2.0
UniqueConstraint
annotation at the table level and is useful for when the unique key constraint is only a single field. - Default value:
- false
- Since:
- JPA 2.0
- Default value:
- true
- Since:
- JPA 2.0