SpringDataJPA使用@Query注解实现模糊查询

对于JPA来说,like查询是不友好的,如果使用下列查询方式,是查不出来的:

一、

@Query("select u from user u where u.username like '%username%'")
List<User> findUserByUsernameLike(@Param("username") String username);

二、

@Query("select u from user u where u.username like '%?1%'")
List<User> findUserByUsernameLike(String username);

这个时候,我们就可以使用CONCAT函数来帮忙,用column like CONCAT(’%’,?1,’%’) 进行拼接,如下:

@Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:username,'%')")
List<String> findUsersWithPartOfName(@Param("username") String username);

你可能感兴趣的:(jpa,sql,mysql)