web-dev-qa-db-fra.com

Quelle est la méthode Spring Data JPA pour utiliser findBy pour plusieurs champs et également utiliser la clause Containing pour tous les champs

J'ai une classe appelée Profile et son référentiel JPA ProfileRepo J'essaie d'utiliser la méthode findBy pour trouver des noms en utilisant le prénom ou le deuxième prénom ou le nom de famille et en utilisant également la clause conteneur.

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

    //getters and setters
}

J'utilise la requête suivante dans le référentiel JPA mais il n'accepte pas la méthode

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

Veuillez aider.

5
user2632905

Essaye ça:

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

ou ca:

@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