为了账号安全,请及时绑定邮箱和手机立即绑定

org.postgresql.util.PSQLException:错误:

org.postgresql.util.PSQLException:错误:

慕无忌1623718 2021-08-19 17:34:16
我试图直接在 spring boot 中使用 URL 中指定的参数执行查询。例如 - http://localhost:8080/users?username=test&city=london& ... 在 Spring Boot 中,我正在替换并形成这样的 PostgreSQL 查询private List<Users> findByQuery(String query) {    return entityManager           .createNativeQuery("SELECT * FROM public.user where ? ", Users.class)           .setParameter(1, query)           .getResultList();}查询将是这样的SELECT * FROM public.user where username='test' AND City='london'它基本上是实现服务器端过滤器,我们有 6 或 7 个但我不断收到以下错误2018-08-29 10:55:45.832 WARN 54751 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper:SQL 错误:0,SQLState:42804 2018-08-29 10.835:错误 54751 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper:错误:WHERE 的参数必须是布尔类型,而不是类型可变的字符位置:48 2018-08-29 10:55:45.849 错误54751 --- [nio-8080-exec-1] oaccC[.[.[/].[dispatcherServlet] : servlet [dispatcherServlet] 的 Servlet.service() 在路径 [] 的上下文中抛出异常 [请求处理失败;嵌套异常是 javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: 无法提取 ResultSet] 与根本原因 org.postgresql.util.PSQLException: 错误:WHERE 的参数必须是布尔类型,而不是类型不同的字符位置:48
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您在 where 子句中缺少字段名称。

改变

SELECT * FROM public.user where ?

SELECT * FROM public.user where username = ?


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 1375 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信