web-dev-qa-db-ja.com

複数のフィールドにfindByを使用し、すべてのフィールドにContaining句を使用するSpring Data JPAメソッドは何ですか

ProfileというクラスとそのJPAリポジトリProfileRepoがあります。findByメソッドを使用して、名またはミドルネームまたは姓と、containing句を使用して名前を検索しようとしています。

public class Profile{
    private String firstName;
    private String middleName;
    private String lastName;

    //getters and setters
}

JPAリポジトリで次のクエリを使用していますが、メソッドを受け入れていません

List<Profile> findByLastNameContainingOrFirstNameContainingOrMiddleNameContainingAllIgnoreCase(String firstName,
        String lastName,String midName);

親切に助けてください。

5
user2632905

これを試して:

List<Profile> findByFirstNameIgnoreCaseContainingOrLastNameIgnoreCaseContainingOrMidNameIgnoreCaseContaining(String firstName, String lastName, String midName);

またはこれ:

@Query("select p from Profile p where upper(p.firstName) like concat('%', upper(?1), '%') or upper(p.lastName) like concat('%', upper(?2), '%') or upper(p.midName) like concat('%', upper(?3), '%')")
List<Profile> getByNames(String firstName, String lastName, String midName);
17
Cepr0