1. ホーム
  2. java

[解決済み] Spring JPAの@QueryとLIKE

2022-10-22 22:11:42

質問

CrudRepositoryで、入力パラメータがLIKEであるユーザーのリスト(始まりだけでなく、それを含む)を取得できるメソッドを作ろうとしています。私はメソッドを使用しようとしました "findUserByUsernameLike(@Param("username") String username)" というメソッドを使おうとしたのですが、Springのドキュメントにあるように、このメソッドは となります。 where user.username like ?1 となります。私はすでにユーザー名に...を含むすべてのユーザーを取得しようとしていると述べたように、これは私にとって良いことではありません。

私はメソッドにクエリを書きましたが、それさえもデプロイされません。

@Repository
public interface UserRepository extends CrudRepository<User, Long> {

@Query("select u from user u where u.username like '%username%'")
List<User> findUserByUsernameLike(@Param("username") String username);
}

誰かこれを手伝ってくれませんか?

どのように解決するのですか?

以下の方法を試してみてください(私の場合はうまくいきました)。

@Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:username,'%')")
List<String> findUsersWithPartOfName(@Param("username") String username);

お知らせです。JPQLのテーブル名は大文字で始めなければなりません。