簡體   English   中英

如何使用 SpringBoot 數據 JPA 運行此 SQL 語句?

[英]How can I run this SQL statement with SpringBoot data JPA?

我正在嘗試使用 SpringBoot 和 PostgreSQL 創建數據過濾器,我正在嘗試運行查詢以在搜索欄中通過其nameidaccount id獲取客戶,在 Spring 中運行本機 SQL 語句時遇到問題數據 JPA,我收到以下錯誤:

跟蹤錯誤

錯誤說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列中的信息。

所以我不確定我在存儲庫中創建查詢時是否做錯了什么,非常感謝您對此的幫助。

在您的查詢中執行select *而不是select json_data ,目前您正在嘗試將單個列 map 放入整個實體中,這就是它抱怨結果集中缺少 id 的原因。 column name seq_id was not found in this result set一直存在於錯誤日志中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM