복붙노트

[SPRING] 무엇 여러 필드에 대한 findBy를 사용하는 스프링 데이터 JPA 방법이며, 또한 모든 필드에 포함하는 절을 사용

SPRING

무엇 여러 필드에 대한 findBy를 사용하는 스프링 데이터 JPA 방법이며, 또한 모든 필드에 포함하는 절을 사용

나는라는 클래스 프로필과 JPA 저장소 ProfileRepo이 나는 이름 또는 중간 이름 또는 성 또한 포함 절을 사용을 사용하여 이름을 찾을 수 findBy 방법을 사용하는 것을 시도하고있다.

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);

친절하게 도와.

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    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);
    
  2. from https://stackoverflow.com/questions/44411022/what-is-the-spring-data-jpa-method-to-use-findby-for-multiple-fields-and-also-us by cc-by-sa and MIT license