@Repeatable(value=MapKeyJoinColumns.class) @Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface MapKeyJoinColumn
MapKeyJoinColumnが指定されていない場合は単一の結合カラムが使用され、デフォルト値が適用されます。
Example 1:
@Entity
public class Company {
@Id int id;
...
@OneToMany // 単方向
@JoinTable(name="COMPANY_ORGANIZATION",
joinColumns=@JoinColumn(name="COMPANY"),
inverseJoinColumns=@JoinColumn(name="VICEPRESIDENT"))
@MapKeyJoinColumn(name="DIVISION")
Map<Division, VicePresident> 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<Movie, Integer> videoInventory;
...
}
@Entity
public class Movie {
@Id long id;
String title;
...
}
Example 3:
@Entity
public class Student {
@Id int studentId;
...
@ManyToMany // studentsとcoursesはそれぞれmany-many
@JoinTable(name="ENROLLMENTS",
joinColumns=@JoinColumn(name="STUDENT"),
inverseJoinColumns=@JoinColumn(name="SEMESTER"))
@MapKeyJoinColumn(name="COURSE")
Map<Course, Semester> enrollment;
...
}
ForeignKey| 修飾子とタイプ | 任意要素と説明 |
|---|---|
java.lang.String |
columnDefinition
(オプション) このカラムが生成されるときのDDLで使用されるSQLフラグメント。
|
ForeignKey |
foreignKey
(オプション) テーブルの生成が有効な場合に主キー結合カラムの外部キー制約の生成を指定または制御するために使用されます。
|
boolean |
insertable
(オプション) 永続化プロバイダによって生成されたSQL INSERTステートメントにカラムが含まれるかどうか。
|
java.lang.String |
name
(オプション) マップキーのための外部キーのカラムの名前。
|
boolean |
nullable
(オプション) 外部キーのカラムにnullを入れられるかどうか。
|
java.lang.String |
referencedColumnName
(オプション) この外部キーのカラムによって参照されるカラムの名前。
|
java.lang.String |
table
(オプション) 外部キーのカラムが含まれるテーブルの名前。
|
boolean |
unique
(オプション) このプロパティがユニークキーかどうか。
|
boolean |
updatable
(オプション) 永続化プロバイダによって生成されたSQL UPDATEステートメントにカラムが含まれるかどうか。
|
public abstract java.lang.String name
(単一の結合カラムが使用された場合のみ適用される)デフォルトのカラム名は次のものを連結します。 :参照するエンティティや組み込みクラスの参照するリレーションシップのプロパティやフィールド + "_" + "KEY"
public abstract java.lang.String referencedColumnName
public abstract boolean unique
UniqueConstraintアノテーションのショートカットであり、
ユニークキー制約が単一のフィールドだけである場合に便利です。public abstract boolean insertable
public abstract boolean updatable
public abstract java.lang.String columnDefinition
public abstract java.lang.String table
デフォルト:
public abstract ForeignKey foreignKey
Translated by @megascus.