SQLSERVER使用Spring Data JPA实现模糊查询like

mysql下可以使用 CONCAT函数

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

  

SQLSERVER 2008r2不支持 CONCAT函数,查了很多方式最后找到了折中的办法,就是把%和内容作为参数传入

public interface WpxxRepository extends JpaRepository<Wpxx, Long> {

    @Query(value = " from  Wpxx where wpmc like :mc ")
    List<Wpxx> findAllByName(@Param("mc") String mc);
}

  

WpxxDaoImpl调用的时候
 @Override
    public List<Wpxx> findAllByName(String mc) {
        return wpxxRepository.findAllByName("%"+mc+"%");
    }

  如果想查询 like '%测试%' ,调用WpxxDaoImpl 方法 findAllByName(“测试”) ,传入到 WpxxRepository中的时候就是 findAllByName("%测试%")

猜你喜欢

转载自www.cnblogs.com/zyh1989/p/10942927.html