我试图直接在 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
守着星空守着你
相关分类