Vik*_*iia 75 java sql jquery spring jpa
我正在尝试在CrudRepository中创建一个方法,它将能够为我提供用户列表,其用户名是LIKE输入参数(不仅以开头,还包含它).我尝试使用方法"findUserByUsernameLike(@Param("username") String username)"但是在Spring文档中告诉我,这个方法等于" where user.username like ?1".这对我来说并不好,因为我已经告诉我,我正试图让所有用户名包含的用户...
我写了一个查询方法,但它甚至没有部署.
@Repository
public interface UserRepository extends CrudRepository<User, Long> {
@Query("select u from user u where u.username like '%username%'")
List<User> findUserByUsernameLike(@Param("username") String username);
}
任何人都可以帮我吗?
小智 141
尝试使用以下方法(它适用于我):
@Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:username,'%')")
List<String> findUsersWithPartOfName(@Param("username") String username);
注意:JPQL中的表名必须以大写字母开头.
jmg*_*esc 107
使用方法名称创建查询,检查表4,它们解释了一些关键字.
使用Like:select ... like:username
List<User> findByUsernameLike(String username);
StartingWith:select ... like:username%
List<User> findByUsernameStartingWith(String username);
EndingWith:select ... like%:username
List<User> findByUsernameEndingWith(String username);
包含:select ... like%:username%
List<User> findByUsernameContaining(String username);
请注意,您要找的答案是4号.您不必使用@Query
rem*_*_br 22
另一种方式:代替CONCAT函数我们可以使用双管:: lastname || '%'  
@Query("select c from Customer c where c.lastName LIKE :lastname||'%'")
List<Customer> findCustomByLastName( @Param("lastname") String lastName);
您可以放置任何位置,前缀,后缀或两者
:lastname ||'%'  
'%' || :lastname  
'%' || :lastname || '%'  
易于使用的代码(无需使用CONCAT或||):
@Query("from Service s where s.category.typeAsString like :parent%")
List<Service> findAll(@Param("parent") String parent);
记录在:http : //docs.spring.io/spring-data/jpa/docs/current/reference/html。
对于您的情况,可以直接使用JPA方法。就像下面这样:
包含:选择...,例如%:username%
List<User> findByUsernameContainingIgnoreCase(String username);
在这里,IgnoreCase将帮助您在不区分大小写的情况下搜索项目。
以下是一些相关方法:
喜欢 findByFirstnameLike
…其中x.firstname像?1
从...开始 findByFirstnameStartingWith
…其中x.firstname如?1(参数与附加%绑定)
结尾于 findByFirstnameEndingWith
…其中x.firstname如?1(参数与前缀%绑定)
内含 findByFirstnameContaining
…其中x.firstname如?1(参数绑定在%中)
希望能帮到你 :)
| 归档时间: | 
 | 
| 查看次数: | 84643 次 | 
| 最近记录: |