对于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);
@Query查询:
(e.event_title like CONCAT(’%’,?1,’%’) or ?1 is null)
代表不存在则不查询,存在则进行模糊查询