我在HQL语句中绑定了命名参数,但它没有被填充.
//colname = "AdminsInfo.name"; assume it is from method's input
//colval = input.getName().toString(); // assume it is from method's input
String query = "from AdminsInfo where :coln = :colv";
Query q = session.createQuery(query);
q.setParameter("coln",colname);
q.setParameter("colv",colval);
System.out.println(q.toString());
Run Code Online (Sandbox Code Playgroud)
它输出类似这样的东西,这意味着没有设置参数(coln,colv)并返回0记录.
QueryImpl(from AdminsInfo where :coln = :colv)
Hibernate: select adminsinfo0_.Row as Row1_0_, adminsinfo0_.ID as ID2_0_,adminsinfo0_.Name as Name3_0_, ... where ?=?
Run Code Online (Sandbox Code Playgroud)
任何有关如何在HQL语句中绑定列名称的帮助都表示赞赏.谢谢.马赫迪.
您不能将列名绑定为参数.只有列值.在计算执行计划,绑定参数值和执行查询之前,必须知道此名称.如果您确实想要这样的动态查询,请使用Criteria API或其他动态创建查询的方法.
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |