パッケージ jakarta.persistence

アノテーション型 MapKey


  • @TargetSE({METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    public @interface MapKey
    マップキー自体がプライマリキーであるか、マップの値であるエンティティの永続フィールドまたはプロパティである場合、型 java.util.MapSE の関連付けのマップキーを指定します。

    主キー以外の永続フィールドまたはプロパティがマップキーとして使用される場合、一意性制約が関連付けられていることが期待されます。

    MapKey が指定されている場合、MapKeyClass アノテーションは使用されません。その逆も同様です。

    
        Example 1:
    
        @Entity
        public class Department {
            ...
            @OneToMany(mappedBy="department")
            @MapKey  // map key is primary key
            public Map<Integer, Employee> getEmployees() {... }
            ...
        }
    
        @Entity
        public class Employee {
            ...
            @Id Integer getEmpId() { ... }
            @ManyToOne
            @JoinColumn(name="dept_id")
            public Department getDepartment() { ... }
            ...
        }
    
        Example 2:
    
        @Entity
            public class Department {
            ...
            @OneToMany(mappedBy="department")
            @MapKey(name="name")
            public Map<String, Employee> getEmployees() {... }
            ...
        }
    
        @Entity
            public class Employee {
            @Id public Integer getEmpId() { ... }
            ...
            @ManyToOne
            @JoinColumn(name="dept_id")
            public Department getDepartment() { ... }
            ...
        }
     
    導入:
    1.0
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      StringSEname
      (オプション)マップキーとして使用される、関連付けられたエンティティの永続フィールドまたはプロパティの名前。
    • 要素の詳細

      • name

        StringSE name
        (オプション)マップキーとして使用される、関連付けられたエンティティの永続フィールドまたはプロパティの名前。

        デフォルト: name 要素が指定されていない場合、関連付けられたエンティティの主キーがマップキーとして使用されます。主キーが複合主キーであり、IdClass としてマップされている場合、主キークラスのインスタンスがキーとして使用されます。

        デフォルト:
        ""