JPA本机查询提供不正确的输出

时间:2016-03-02 10:17:49

标签: sql hibernate postgresql

我知道这可能听起来很傻但是我已经坚持这个问题太久了!

我使用本机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';

我得到正确的输出,返回记录键值对的记录。

我在哪里犯了错误?

1 个答案:

答案 0 :(得分:1)

您不能将参数用于列名称。您的查询解析为

select * from gs where 'subject' = '''Sub'''
编辑:刚看到@pozs已在评论中发布了同样的内容