【发布时间】:2014-12-22 12:47:20
【问题描述】:
我在 PostgreSQL 中使用 JPA 并在创建 jpql 时遇到问题。
下面是我的模型代码
public static List<Jobseekers> search(String key, String keyvalue) {
@SuppressWarnings("unchecked")
List<Jobseekers> empList = JPA.em().createQuery("FROM Jobseekers WHERE :key LIKE :keyvalue").setParameter("key", key).setParameter("keyvalue", "%"+keyvalue+"%").getResultList();
System.out.println("key is"+key);
return empList;
}
所以我的列名在查询中是动态的
创建的sql是这样的
select * from jobseekers where 'name' like '%akash%'
名字是关键
由于名称列名称中的撇号('),上述查询给出了一个空列表
我的问题是如何删除列 name('name') 中的撇号(') 以便我能得到正确的结果?
【问题讨论】:
-
您的问题不在于如何转义撇号,您的问题是带有
:key的准备好的语句无法像处理值那样处理动态SQL。我不知道答案,但您应该更改标题并可能更改问题以反映这一点。
标签: java sql postgresql jpa playframework-2.2