【发布时间】:2014-10-22 05:03:55
【问题描述】:
我对参数化 SQL 查询的以下方法的第一个参数有疑问:
lista = miDao.find("SELECT c FROM Idioma WHERE c.palabra =:param", o1 , entityManager);
地点:
String o1= "playa";
List<Object> lista;
表格“Idioma”有 3 列“palabra”、“idioma”和“wordId”。该方法预计会在“palabra”列中查找单词“playa”,并调用以下 Dao 方法:
@SuppressWarnings("unchecked")
public <T> List<T> find(String queryString, Object param, EntityManager em) {
Query query = em.createQuery(queryString);
query.setParameter( "param" , param);
return query.getResultList();
}
当我运行程序时,我被“回滚”了:
Unable to resolve path [c.palabra], unexpected token [c] [SELECT c FROM com.aprendeidiomas.entity.Idioma WHERE c.palabra =:param]
我确定我的参数化 sql 查询有问题。即使我有很多文档,我也无法解决我的错误。你能告诉我我的参数化查询有什么问题吗?
非常感谢您。
【问题讨论】:
-
什么是
c?你的意思是SELECT c FROM Idioma c ...? -
"c" 是我要为“playa”替换的参数
-
不,参数是
param。
标签: java mysql sql hibernate jpa