Spring JpaRepository 中的 %Like% 查询

新手上路,请多包涵

我想在 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);
}

原文由 sudeep cv 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

spring data JPA 查询在查询中需要“%”字符以及 like 之后的空格字符,如

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

参照。 http://docs.spring.io/spring-data/jpa/docs/current/reference/html

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

List<Registration> findByPlaceContaining(String place);

足够了。

原文由 Hille 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

您可以使用以下内容

    @Repository("registerUserRepository")
    public interface RegisterUserRepository extends JpaRepository<Registration,Long>{

    List<Registration> findByPlaceIgnoreCaseContaining(String place);

    }

原文由 Alexius DIAKOGIANNIS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题