public enum PessimisticLockScope extends java.lang.Enum<PessimisticLockScope>
javax.persistence.lock.scope
プロパティの値を定義します。
このプロパティはEntityManager
やQuery
、TypedQuery
インターフェースのメソッドでロックモードを指定するために引数として渡したり、
NamedQuery
アノテーションと同時に使用することができます。列挙型定数と説明 |
---|
EXTENDED
javax.persistence.lock.scope プロパティの値としてPessimisticLockScope.EXTENDED が指定されている場合、
PessimisticLockScope.NORMAL の振る舞いに加えて要素コレクションやエンティティが所有する結合テーブルに含まれるリレーションシップはロックされます。 |
NORMAL
この値は悲観ロックのデフォルトの動作を定義します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
static PessimisticLockScope |
valueOf(java.lang.String name)
指定した名前を持つこの型の列挙型定数を返します。
|
static PessimisticLockScope[] |
values()
この列挙型の定数を含む配列を宣言されている順序で返します。
|
public static final PessimisticLockScope NORMAL
永続化プロバイダはそのインスタンスのコレクションの値を除いた永続性状態に対応するデータベース行をロックするべきです。 テーブル結合をする継承ストラテジーが使用されている場合やエンティティがセカンダリーテーブルも使用してマッピングされている場合は、 必然的に追加のテーブルの行をエンティティのインスタンスのためにロックします。 ロックされたエンティティの外部キーを含むエンティティのリレーションシップもロックされますが、参照されているエンティティの状態は(エンティティが明示的にロックされている場合を除いて)ロックされません。 エンティティが外部キーを含まない要素コレクションやリレーションシップ (結合テーブルにマッピングされたリレーションシップや、ターゲットのエンティティが外部キーを含む一方向の一対多のリレーションシップなど)はデフォルトではロックされません。
public static final PessimisticLockScope EXTENDED
javax.persistence.lock.scope
プロパティの値としてPessimisticLockScope.EXTENDED
が指定されている場合、
PessimisticLockScope.NORMAL
の振る舞いに加えて要素コレクションやエンティティが所有する結合テーブルに含まれるリレーションシップはロックされます。
そのようなリレーションシップによって参照されるエンティティの状態は(エンティティが明示的にロックされている場合を除いて)ロックされません。
一般に、そのようなリレーションシップや要素コレクションをロックすると、そのリレーションシップやコレクションの結合テーブルまたはコレクションテーブルの行のみがロックされます。
これはファントムリードが発生する可能性があることを意味します。
訳注:OneToMeny
等でエンティティの関連を作成すると、JoinColumn
を指定しない場合は結合テーブル(中間テーブルと呼ばれることも多い)が作成されますが、中間テーブルまでしかロックされません。
public static PessimisticLockScope[] values()
for(PessimisticLockScope c: PessimisticLockScope.values()) System.out.println(c);
public static PessimisticLockScope valueOf(java.lang.String name)
name
- 返される列挙型定数の名前。java.lang.IllegalArgumentException
- この列挙型に、指定した名前の定数がない場合java.lang.NullPointerException
- 引数がnullの場合Translated by @megascus.