@TargetSE(valueSE={METHODSE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) public @interface ManyToOne
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;
}
| 修飾子と型 | オプションの要素と説明 |
|---|---|
CascadeType[] | cascade(オプション)関連付けのターゲットにカスケードする必要がある操作。 |
FetchType | fetch(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。 |
boolean | optional(オプション)関連付けがオプションかどうか。 |
ClassSE | targetEntity(オプション)関連付けのターゲットであるエンティティクラス。 |
public abstract ClassSE targetEntity
デフォルトでは、関連付けを保存するフィールドまたはプロパティの型になります。
public abstract CascadeType[] cascade
デフォルトでは、操作はカスケードされません。
public abstract FetchType fetch
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.