パッケージ jakarta.persistence
アノテーション型 OneToOne
@TargetSE({METHODSE,FIELDSE}) @RetentionSE(RUNTIMESE) public @interface OneToOne
1 対 1 の多重度を持つ別のエンティティへの単一値の関連付けを指定します。通常、関連付けられているターゲットエンティティは、参照されているオブジェクトの型から推測できるため、明示的に指定する必要はありません。関連が双方向の場合、非所有側はOneToOne
アノテーションのmappedBy
要素を使用して、所有側の関連フィールドまたはプロパティを指定する必要があります。OneToOne
アノテーションを埋め込み可能クラス内で使用して、埋め込み可能クラスからエンティティクラスへの関連を指定できます。関連が双方向で、埋め込み可能クラスを含むエンティティが関連の所有側にある場合、非所有側はOneToOne
アノテーションのmappedBy
要素を使用して、埋め込み可能クラスの関連フィールドまたはプロパティを指定する必要があります。mappedBy
要素でドット("." )表記構文を使用して、埋め込み属性内の関連属性を示す必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。Example 1: One-to-one association that maps a foreign key column // On Customer class: @OneToOne(optional=false) @JoinColumn( name="CUSTREC_ID", unique=true, nullable=false, updatable=false) public CustomerRecord getCustomerRecord() { return customerRecord; } // On CustomerRecord class: @OneToOne(optional=false, mappedBy="customerRecord") public Customer getCustomer() { return customer; } Example 2: One-to-one association that assumes both the source and target share the same primary key values. // On Employee class: @Entity public class Employee { @Id Integer id; @OneToOne @MapsId EmployeeInfo info; ... } // On EmployeeInfo class: @Entity public class EmployeeInfo { @Id Integer id; ... } Example 3: One-to-one association from an embeddable class to another entity. @Entity public class Employee { @Id int id; @Embedded LocationDetails location; ... } @Embeddable public class LocationDetails { int officeNumber; @OneToOne ParkingSpot parkingSpot; ... } @Entity public class ParkingSpot { @Id int id; String garage; @OneToOne(mappedBy="location.parkingSpot") Employee assignedTo; ... }
- 導入:
- 1.0
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 CascadeType[]
cascade
(オプション)関連付けのターゲットにカスケードする必要がある操作。FetchType
fetch
(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。StringSE
mappedBy
(オプション)関連を所有するフィールド。boolean
optional
(オプション)関連付けがオプションかどうか。boolean
orphanRemoval
(オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。ClassSE
targetEntity
(オプション)関連付けのターゲットであるエンティティクラス。
要素の詳細
targetEntity
ClassSE targetEntity
(オプション)関連付けのターゲットであるエンティティクラス。デフォルトでは、関連付けを保存するフィールドまたはプロパティの型になります。
- デフォルト:
- void.class
cascade
CascadeType[] cascade
(オプション)関連付けのターゲットにカスケードする必要がある操作。デフォルトでは、操作はカスケードされません。
- デフォルト:
- {}
fetch
FetchType fetch
(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。EAGER 戦略は、永続性プロバイダーランタイムの要件であり、関連付けられたエンティティを積極的にフェッチする必要があります。LAZY 戦略は、永続化プロバイダーランタイムへのヒントです。- デフォルト:
- jakarta.persistence.FetchType.EAGER
mappedBy
StringSE mappedBy
(オプション)関連を所有するフィールド。この要素は、関連付けの逆(非所有)側でのみ指定されます。- デフォルト:
- ""