我试图直接在 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 = ?
添加回答
举报
0/150
提交
取消