ロッキング

使用するロックモードを指定するには、次の例に示すように、クエリメソッドで @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();
}