繁体   English   中英

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

[英]Why does my JpaRepository (spring-data-jpa) custom query return me an empty list?

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

@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);

这就是我所说的:

@PostMapping("/")
public List<FullAnnuncio> searchAnnunci(@RequestBody SearchEntity search) {
    List<AnnuncioEntity> li = annuncioDAO.searchWithoutFilters(search.getMain());
    return null;
}

li 列表总是空的(用调试器检查),我不知道如何修复它,我确信查询有效并产生预期的结果集,因为我首先在 sqlDeveloper 上尝试过,而且我从搜索中得到的字符串不是null

请帮助我对这些东西很陌生,因为我什至不是初级程序员 lmao

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

LIKE CONCAT(CONCAT('%', :main), '%')

(语法仅在 oracle 数据库中是正确的,但要小心,对于 mySql 和其他数据库,请这样写:

LIKE CONCAT('%', :param, '%')

谢谢@Arnaud

尝试在两次出现时将查询“:main”更改为“?1”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM