java 我如何使用SpringBoot数据JPA运行这个SQL语句?

gzszwxb4  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(127)

我尝试使用SpringBoot和PostgreSQL创建一个数据过滤器,我尝试在searchBar中运行一个查询以通过nameidaccount id获取客户,在Spring Data JPA中运行原生SQL语句时遇到问题,我收到以下错误:

错误信息是Could not execute query。我试过用不同的方法运行这个语句,但还是出现了错误,以下是我试过的方法:

@Query(
        value = "SELECT json_data FROM contact WHERE name = :searchText OR account_id = :searchText OR id = :searchText", 
        nativeQuery = true)

@Query(
        value = "SELECT json_data FROM contact WHERE contact.name LIKE %:searchText% OR contact.account_id LIKE %:searchText% OR contact.id LIKE %:searchText%", 
        nativeQuery = true)

@Query(
        value = "SELECT json_data FROM contact WHERE name = ?1 OR account_id = ?1 OR id = ?1", 
        nativeQuery = true)

Page<Contact> findByWord(Pageable pageable, @Param("searchText") String searchText);

我可以在PGAdmin中成功运行查询,如下所示:

SELECT json_data FROM contact 
WHERE name = 'TESLA ARQUITECTURA S.A.S' 
OR account_id = '' 
OR id = ''

或:

SELECT json_data FROM contact 
WHERE name = '' 
OR contact.account_id = '' 
OR contact.id = '2'

或:

SELECT json_data FROM contact 
WHERE name = '' 
OR account_id = '1674590687S' 
OR id = ''

所有这些语句都在工作,其思想是,如果我将参数传递给SQL语句,它将返回json_data列中的信息。
所以我不确定我在仓库中创建查询时是否做错了什么,我将非常感谢你的帮助。

3htmauhk

3htmauhk1#

在您的查询中执行select *而不是select json_data,当前您正尝试将单个列Map到整个实体,这就是为什么它抱怨结果集中缺少ID。column name seq_id was not found in this result set沿着在错误日志中。

相关问题