パッケージ jakarta.persistence

アノテーション型 EmbeddedId


  • @TargetSE({METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    public @interface EmbeddedId
    エンティティクラスまたはマップされたスーパークラスの永続フィールドまたはプロパティに適用され、埋め込み可能なクラスである複合主キーを示します。埋め込み可能なクラスには、Embeddable というアノテーションを付ける必要があります。

    EmbeddedId アノテーションを使用する場合は、EmbeddedId アノテーションは 1 つだけで、Id アノテーションは使用しないでください。

    AttributeOverride アノテーションは、埋め込み可能クラス内で宣言された列マッピングをオーバーライドするために使用できます。

    MapsId アノテーションは、EmbeddedId アノテーションと組み合わせて使用して、派生した主キーを指定できます。

    エンティティに派生主キーがある場合、AttributeOverride アノテーションは、親エンティティとの関連に対応しない埋め込み ID の属性をオーバーライドするためにのみ使用できます。

    埋め込み ID クラス内で定義された関連マッピングはサポートされていません。

        Example 1:
    
        @EmbeddedId
        protected EmployeePK empPK;
    
    
        Example 2:
    
        @Embeddable
        public class DependentId {
           String name;
           EmployeeId empPK;   // corresponds to primary key type of Employee
        }
    
        @Entity
        public class Dependent {
           // default column name for "name" attribute is overridden
           @AttributeOverride(name="name", @Column(name="dep_name"))
           @EmbeddedId DependentId id;
           ...
           @MapsId("empPK")
           @ManyToOne Employee emp;
        }
     
    導入:
    1.0
    関連事項:
    Embeddable, MapsId