%Like% 查询在春季 Jpa存储库

2022-08-31 08:04:48

我想写一个喜欢的查询,但它没有返回任何东西: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);
}

答案 1

Spring 数据 JPA 查询需要查询中的“%”字符以及空格字符,如like

@Query("Select c from Registration c where c.place like %:place%").

看 http://docs.spring.io/spring-data/jpa/docs/current/reference/html

您可能希望完全摆脱注释,因为它似乎类似于标准查询(由spring数据代理自动实现);即使用单行@Query

List<Registration> findByPlaceContaining(String place);

就足够了。


答案 2

您实际上根本不需要注释。@Query

您只需使用以下

    @Repository("registerUserRepository")
    public interface RegisterUserRepository extends JpaRepository<Registration,Long>{
    
    List<Registration> findByPlaceIgnoreCaseContaining(String place);

    }

推荐