같은 쿼리를 작성하고 JpaRepository싶지만 아무것도 반환하지 않습니다.
LIKE '%place%'-작동하지 않습니다.
LIKE 'place' 완벽하게 작동합니다.
내 코드는 다음과 같습니다.
@Repository("registerUserRepository")
public interface RegisterUserRepository extendsJpaRepository<Registration,Long> {
    @Query("Select c from Registration c where c.place like :place")
     List<Registration> findByPlaceContaining(@Param("place")String place);
}
답변
스프링 데이터 JPA 쿼리에는 다음과 같이 “%”문자와 like쿼리 뒤에 공백 문자가 필요합니다 .
@Query("Select c from Registration c where c.place like %:place%"). 
Cf. http://docs.spring.io/spring-data/jpa/docs/current/reference/html .
@Query표준 쿼리 (스프링 데이터 프록시에 의해 자동으로 구현 됨)와 유사한 것처럼 보이 므로 주석을 모두 제거 할 수 있습니다 . 즉 한 줄 사용
List<Registration> findByPlaceContaining(String place);
충분하다.
답변
실제로 @Query주석이 전혀 필요하지 않습니다.
다음을 사용할 수 있습니다.
    @Repository("registerUserRepository")
    public interface RegisterUserRepository extends JpaRepository<Registration,Long>{
    List<Registration> findByPlaceIgnoreCaseContaining(String place);
    }
답변
SpringData JPA 지원 키워드 “Containing”을 사용하여 유사 쿼리를 구현할 수도 있습니다 .
List<Registration> findByPlaceContaining(String place);
답변
귀하의 경우에는 JPA 방법을 직접 사용할 수 있습니다. 그것은 다음과 같습니다.
포함 : select … like % : place %
List<Registration> findByPlaceContainingIgnoreCase(String place);
여기서 IgnoreCase 는 케이스를 무시하고 항목을 검색하는 데 도움이됩니다.
JPQL에서 @Query 사용 :
@Query("Select registration from Registration registration where
registration.place LIKE  %?1%")
List<Registration> findByPlaceContainingIgnoreCase(String place);
다음은 몇 가지 관련 방법입니다.
- 
처럼
findByPlaceLike… x.place는? 1
 - 
로 시작
findByPlaceStartingWith… 여기서 x.place like? 1 (파라미터는 %가 추가됨)
 - 
EndingWith
findByPlaceEndingWith… x.place like? 1 (파라미터는 %로 묶여 있음)
 - 
포함
findByPlaceContaining… x.place like? 1 (파라미터 경계가 %로 래핑 됨)
 
이것이 당신을 도울 것입니다 🙂
답변
자리 표시자를 다음과 같이 사용하는 대안 중 하나를 사용할 수 있습니다.
@Query("Select c from Registration c where c.place LIKE  %?1%")
List<Registration> findPlaceContainingKeywordAnywhere(String place);
답변
이 시도.
@Query("Select c from Registration c where c.place like '%'||:place||'%'")
답변
통화 기능을 사용할 때 다음을 사용합니다.
findByPlaceContaining("%" + place);
또는:
findByPlaceContaining(place + "%");
또는:
findByPlaceContaining("%" + place + "%");
