java - SQL query.setParameter() 未在 Java 中获取单引号字符串

标签 java hibernate postgresql jpa

我正在尝试使用索引查询来运行一个 SQL 查询, list.add("'%"+ some_string + "%'"); 并在查询(样本)中设置如下:

query=select * from table where name like ?1;

我将参数设置为:

 query.setParameter(1, list.get(0));

它不起作用,相反,如果我直接将值放入查询中,例如:

select * from table where name like '%"+some_string+"%'

它有效。我正在使用 JPA Hibernate 和 postgres 数据库。

将参数设置为

时是否有单引号的内部解析

query.setParameter();

最佳答案

删除要添加到 List 的占位符值中的 '' 引号。

list.add("%" + some_string + "%");

现在 query.setParameter(1, list.get(0)); 应该按预期工作,因为任何绑定(bind)到 ? 占位符的字符串值都不需要被引用。

关于java - SQL query.setParameter() 未在 Java 中获取单引号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812767/

相关文章:

java - 安卓 JNI 错误 : Call function with boolean argument causes a crash

java - 使用 Maven Shade 插件排除 Artifact 未按预期工作

java - 空列表的加权顺序

postgresql - 适当的 AWS RDS 存储大小/重新分配

sql - 在 Postgresql 中,是否可以在不将约束添加到实体的情况下表达和检查约束?

java - GWT 中 tabPanel 上的监听器

java - Hibernate 隔离集成测试

java - Hibernate 忽略 'lazy' 获取类型并立即加载属性

hibernate - 如何避免 "N+1 Select"并为具有多对一的 (N)Hibernate 用户类型指定获取策略?

PostgreSQL pgAdmin III SSL 连接到 AWS RDS 实例