首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的JpaRepository (spring-data-jpa)定制查询返回一个空列表?

为什么我的JpaRepository (spring-data-jpa)定制查询返回一个空列表?
EN

Stack Overflow用户
提问于 2021-10-07 14:40:10
回答 2查看 128关注 0票数 0

我正在尝试开发一个set应用程序,在那里用户发布他们的广告,我目前正在研究一个广告部分,它只是一个表单,它发送一个搜索模型(它有一个字符串,它是写在搜索栏上的文本和一些不需要的过滤器)到后端(spring boot),后端获取字符串并将其提供给JpaRepository方法,该方法应该在我的oracle数据库上进行查询,并以AdEntity列表的形式返回结果集,唯一的问题是列表总是空的,以下是方法:

代码语言:javascript
复制
@Query(value = "select distinct a.ann_id, a.nome, a.autore, a.descrizione, a.prodotto, a.prezzo "
        + "from annunci a, prodotti p "
        + "where a.prodotto = p.prod_id  "
        + "and (a.nome like '%:main%' or p.nome like '%:main%')", nativeQuery = true)
public List<AnnuncioEntity> searchWithoutFilters(String main);

这就是我所谓的:

代码语言:javascript
复制
@PostMapping("/")
public List<FullAnnuncio> searchAnnunci(@RequestBody SearchEntity search) {
    List<AnnuncioEntity> li = annuncioDAO.searchWithoutFilters(search.getMain());
    return null;
}

li列表总是空的(用调试器检查过),我不知道如何修复它,我确信查询可以工作并生成预期的resultSet,就像我首先在sqlDeveloper上尝试的那样,而且我从搜索中得到的字符串不是空的

我是新手,因为我甚至不是初级程序员。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-07 15:16:14

完成后,jpa仓库上的Like子句有点像dodoo,所以我不得不这样写它:

代码语言:javascript
复制
LIKE CONCAT(CONCAT('%', :main), '%')

( sintax只有在oracle数据库中才是正确的,所以要小心,因为mySql和其他人是这样写的:

代码语言:javascript
复制
LIKE CONCAT('%', :param, '%')

谢谢@Arnaud

票数 1
EN

Stack Overflow用户

发布于 2021-10-07 14:51:38

尝试在两个实例中将查询":main“更改为"?1”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69483108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档