猿问

org.postgresql.util.PSQLException:错误:

我试图直接在 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


慕无忌1623718
浏览 1465回答 2
2回答

守着星空守着你

您在 where 子句中缺少字段名称。改变SELECT&nbsp;*&nbsp;FROM&nbsp;public.user&nbsp;where&nbsp;?到SELECT&nbsp;*&nbsp;FROM&nbsp;public.user&nbsp;where&nbsp;username&nbsp;=&nbsp;?
随时随地看视频慕课网APP

相关分类

Java
我要回答