什么是对多个字段使用findBy的Spring Data JPA方法,并对所有字段使用Containing子句

use*_*905 5 java db2 spring repository spring-data-jpa

我有一个名为Profile的类及其JPA存储库ProfileRepo我正在尝试使用findBy方法使用名字或中间名或姓氏以及使用contains子句查找名称.

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

    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我在JPA存储库中使用以下查询但它不接受该方法

List<Profile> findByLastNameContainingOrFirstNameContainingOrMiddleNameContainingAllIgnoreCase(String firstName,
        String lastName,String midName);
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Cep*_*pr0 14

试试这个:

List<Profile> findByFirstNameIgnoreCaseContainingOrLastNameIgnoreCaseContainingOrMidNameIgnoreCaseContaining(String firstName, String lastName, String midName);
Run Code Online (Sandbox Code Playgroud)

或这个:

@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);
Run Code Online (Sandbox Code Playgroud)