SpringDataJPA之@Query 如何 LIKE(JPA模糊查询)

对于JPA来说,like查询是不友好的,,例如这么查,是查不出来东西的

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

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

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

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

@Query查询:
(e.event_title like CONCAT(’%’,?1,’%’) or ?1 is null)
代表不存在则不查询,存在则进行模糊查询

你可能感兴趣的:(java,SpringBoot)