ロッキング
使用するロックモードを指定するには、次の例に示すように、クエリメソッドで @Lock
アノテーションを使用できます。
例 1: クエリメソッドのロックメタデータの定義
interface UserRepository extends Repository<User, Long> {
// Plain query method
@Lock(LockModeType.READ)
List<User> findByLastname(String lastname);
}
このメソッド宣言により、トリガーされるクエリに READ
の LockModeType
が装備されます。次の例に示すように、リポジトリインターフェースでメソッドを再宣言し、@Lock
アノテーションを追加することにより、CRUD メソッドのロックを定義することもできます。
例 2: CRUD メソッドのロックメタデータの定義
interface UserRepository extends Repository<User, Long> {
// Redeclaration of a CRUD method
@Lock(LockModeType.READ)
List<User> findAll();
}