パッケージ jakarta.persistence

アノテーション型 ManyToOne


  • @TargetSE({METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    public @interface ManyToOne
    多対 1 の多重度を持つ別のエンティティクラスへの単一値の関連付けを指定します。通常、参照されているオブジェクトの型から推測できるため、ターゲットエンティティを明示的に指定する必要はありません。関連が双方向の場合、所有していない OneToMany エンティティ側は mappedBy 要素を使用して、関連の所有者であるエンティティの関連フィールドまたはプロパティを指定する必要があります。

    ManyToOne アノテーションを埋め込み可能クラス内で使用して、埋め込み可能クラスからエンティティクラスへの関連を指定できます。関連が双方向の場合、所有していない OneToMany エンティティ側は、OneToMany アノテーションの mappedBy 要素を使用して、関連の所有側の埋め込みフィールドまたは埋め込みフィールドの関連フィールドまたはプロパティを指定する必要があります。mappedBy 要素では、埋め込み属性内の関連属性を示すために、ドット("." )表記構文を使用する必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。

    
         Example 1:
    
         @ManyToOne(optional=false) 
         @JoinColumn(name="CUST_ID", nullable=false, updatable=false)
         public Customer getCustomer() { return customer; }
    
    
         Example 2:
     
         @Entity
            public class Employee {
            @Id int id;
            @Embedded JobInfo jobInfo;
            ...
         }
    
         @Embeddable
            public class JobInfo {
            String jobDescription; 
            @ManyToOne ProgramManager pm; // Bidirectional
         }
    
         @Entity
            public class ProgramManager {
            @Id int id;
            @OneToMany(mappedBy="jobInfo.pm")
            Collection<Employee> manages;
         }
    
     
    導入:
    1.0
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      CascadeType[]cascade
      (オプション)関連付けのターゲットにカスケードする必要がある操作。
      FetchTypefetch
      (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。
      booleanoptional
      (オプション)関連付けがオプションかどうか。
      ClassSEtargetEntity
      (オプション)関連付けのターゲットであるエンティティクラス。
    • 要素の詳細

      • targetEntity

        ClassSE targetEntity
        (オプション)関連付けのターゲットであるエンティティクラス。

        デフォルトでは、関連付けを保存するフィールドまたはプロパティの型になります。

        デフォルト:
        void.class
      • cascade

        CascadeType[] cascade
        (オプション)関連付けのターゲットにカスケードする必要がある操作。

        デフォルトでは、操作はカスケードされません。

        デフォルト:
        {}
      • fetch

        FetchType fetch
        (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。EAGER 戦略は、永続性プロバイダーランタイムの要件であり、関連付けられたエンティティを積極的にフェッチする必要があります。LAZY 戦略は、永続化プロバイダーランタイムへのヒントです。
        デフォルト:
        jakarta.persistence.FetchType.EAGER
      • optional

        boolean optional
        (オプション)関連付けがオプションかどうか。false に設定した場合、null 以外の関連が常に存在する必要があります。
        デフォルト:
        true