欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringDataJpa like查询无效的解决

程序员文章站 2022-03-10 13:17:42
目录springdatajpa like查询无效spring data jpa 模糊查询like精简版一. 方法一二. 方法二springdatajpa like查询无效这里写自定义目录标题sprin...

springdatajpa like查询无效

这里写自定义目录标题

springdatajpa like查询

@query(value = "select u from checktask u where u.site.id =:siteid and u.creattime like concat('%',:strlike,'%') ")
list<checktask> findbysite_idandcreattimelike(@param("siteid")long siteid,@param("strlike") string strlike);

spring data jpa 不能是like

list<checkposition> findbypositioncontainingandsite_id(string position,long siteid);

spring data jpa 模糊查询like精简版

一. 方法一

1. controller层:

方法参数如下,一定要加 "%"+name+"%"

@restcontroller
public class usercontroller { 
    @autowired
    private teamrepository teamrepository;
 
    @getmapping("/findbynamelike")
    public list<team> findbynamelike(string name) {
        // 一定要加 "%"+参数名+"%"
        return teamrepository.findbynamelike("%"+name+"%");
    } 
}

2. dao层:

一定要使用 jpa 规定的形式 findby+参数名+like(参数)

 public interface teamrepository extends jparepository<team, string> {     
    list<team> findbynamelike(string name);

二. 方法二

1. controller:

参数简单化

@restcontroller
public class usercontroller { 
    @autowired
    private teamrepository teamrepository;
 
    @getmapping("/findbynamelike")
    public list<team> findbynamelike(string name) {
        return teamrepository.findbynamelike(name);
    } 
}

2.dao层:

需要自己定义sql语句

public interface teamrepository extends jparepository<team, string> { 
    @query(value = "select t from team t where t.name like %?1%")
    list<team> findbynamelike(string name);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。