Spring Data JPA で様々なクエリを書く方法

Spring Data JPA では findByLastname など自動でメソッドを生成してくれる機能があります。こちらの記事が詳しく記載されています。

【Spring Data JPA】自動実装されるメソッドの命名ルール – Qiita

様々なクエリを自動実装してくれていますが、それでも自分で作成した SQL を実行したいことがあります。

そんなときには @Query を使用して、SQLとメソッドをマップさせます。

Repositoryインターフェース で次のように記載します。これでいつもどおり Autowired してメソッドを使用することが出来ます。

public interface UserRepository extends JpaRepository<User, Long> {

  @Query("select u from User u where u.emailAddress = ?1")
  User findByEmailAddress(String emailAddress);
}

参考

Spring Data JPA – Reference Documentation