sud*_* cv 89 java jpa spring-data-jpa
我想写一个类似的查询,JpaRepository
但它没有返回任何东西:
LIKE '%place%'
- 没有用.
LIKE 'place'
工作得很好.
这是我的代码:
@Repository("registerUserRepository")
public interface RegisterUserRepository extends
JpaRepository<Registration,Long>{
@Query("Select c from Registration c where c.place like:place")
List<Registration> findByPlaceContaining(@Param("place")String place);
}
Run Code Online (Sandbox Code Playgroud)
Hil*_*lle 175
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.
您可能希望完全删除@Query
注释,因为它似乎类似于标准查询(由spring数据代理自动实现); 即使用单线
List<Registration> findByPlaceContaining(String place);
Run Code Online (Sandbox Code Playgroud)
足够了.
Ale*_*NIS 84
你根本不需要@Query
注释.
您可以使用以下内容
@Repository("registerUserRepository")
public interface RegisterUserRepository extends JpaRepository<Registration,Long>{
List<Registration> findByPlaceIgnoreCaseContaining(String place);
}
Run Code Online (Sandbox Code Playgroud)
ama*_*oor 23
您还可以使用Spring Data JPA支持的关键字"Containing"来实现类似的查询.
List<Registration> findByPlaceContaining(String place);
Run Code Online (Sandbox Code Playgroud)
Md.*_*rim 17
对于您的情况,您可以直接使用JPA方法.这就像吼叫:
包含:select ... like%:place%
List<Registration> findByPlaceContainingIgnoreCase(String place);
Run Code Online (Sandbox Code Playgroud)
在这里,IgnoreCase将帮助您忽略大小写来搜索项目.
以下是一些相关的方法:
喜欢 findByPlaceLike
...其中x.place喜欢?1
从...开始 findByPlaceStartingWith
...其中x.place喜欢?1(参数绑定附加%)
EndingWith findByPlaceEndingWith
...其中x.place喜欢?1(参数绑定前置%)
含 findByPlaceContaining
...其中x.place喜欢?1(参数绑定包装在%)
希望对你有帮助 :)
小智 6
尝试这个。
@Query("Select c from Registration c where c.place like '%'||:place||'%'")
Run Code Online (Sandbox Code Playgroud)
我用这个:
@Query("Select c from Registration c where lower(c.place) like lower(concat('%', concat(:place, '%')))")
Run Code Online (Sandbox Code Playgroud)
lower() 类似于 String 中的 toLowerCase,因此结果不区分大小写。
小智 5
您可以使用占位符的一种替代方法:
@Query("Select c from Registration c where c.place LIKE %?1%")
List<Registration> findPlaceContainingKeywordAnywhere(String place);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
114935 次 |
最近记录: |