0
我知道這可能聽起來很愚蠢,但我一直在這個問題上停留太久!JPA原生查詢給出不正確的輸出
我使用本機SQL查詢通過JPA查詢PostgreSQL存儲庫。我的一個疑問的是這樣的:
@Query(value = "select * from gs where ?1 = ?2", nativeQuery = true)
public List<GsJsonStore> matchJson(String term, String value);
我使用測試功能:
List<GsJsonStore> list = repo.matchJson("subject", "'Sub'");
名單上運行的查詢爲空,但是當我通過PSQL命令行運行相同的查詢使用:
select * from gs where subject = 'Sub';
我得到正確的輸出,包含鍵值對的記錄被返回。
我在哪裏犯錯?
一樣,當你調試,怎樣查詢字符串,你得到什麼? –
它們不是相同的查詢。你在JPA中的本地查詢翻譯爲「...... where'subject'='''Sub'''(它總是會給出空的結果)。原生查詢仍使用準備好的語句,您不能將它們用於構建查詢(它們只能用於綁定參數值)。 – pozs
這是休眠曲線: select * from gs where? =? 綁定參數[1]爲[VARCHAR] - ['Sub'] 綁定參數[1]爲[VARCHAR] - [主題] –