たとえば、私はJpaRepositoryという本を持っています。 BookにはName
というフィールドがあり、bookリポジトリにはfindOneByName
というメソッドがあります(jpaリポジトリメソッド命名規則)。しかし、異なるユースケースで使用するには、2つの異なるバージョンのfindOneByName
が必要です。 1つのバージョンはロック注釈付きであり、もう1つはロックフリーです。このように:Spring Data JPAリポジトリのメソッドオーバーロード
public interface BookRepository extends JpaRepository<BookDAO, Long> {
@Lock(LockModeType.READ)
BookDAO findOneByName(String name);
BookDAO findOneByName(String name);
}
これを春に行うことは可能ですか?そうであれば、2つのメソッドを呼び出すときにそれらのメソッドを区別する方法。そうでなければ、SpringのJPAリポジトリインタフェース(findOneBy ***など)を使用している間に、別の方法でそれを行うことができます。
私はちょうどそれらのいずれかのクエリメソッドを使用しません。私は@Lockのための新しいメソッドを作成し、 'findOneByNameWithLock(name)'のようなものを呼び出します。次に、@Queryアノテーションを使用して、そのクエリを指定します。 – LucasP
いいえ、これは好きではありません(そして、Springとは関係ありませんが、Javaの仕組み)。 –
@ M.Deinumありがとうございます。このユースケースに関して建設的な提案がありますか?どのように別の方法でそれを行うには? –