在(...)查询中编写HQL的正确方法 [英] Proper way of writing a HQL in ( ... ) query

查看:101
本文介绍了在(...)查询中编写HQL的正确方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我想写下面的HQL查询:

  FROM CAT c WHERE c.id IN(1,2 ,3)

写这个参数化查询的正确方法是什么,例如

  FROM CAT c WHERE c.id IN(?)


解决方案

我不确定如何使用位置参数执行此操作,但是如果您可以使用命名参数而不是位置,则可以将命名参数放在括号内和查询界面中的> setParameterList 方法可用于将值列表绑定到此参数。

  ... 
查询查询= session.createQuery(FROM Cat c WHERE c.id IN(:ids ));
query.setParameterList(ids,listOfIds);
...


Assuming that I want to write the following HQL query:

FROM Cat c WHERE c.id IN (1,2,3)

what is the proper way of writing this as a parametrized query, e.g.

FROM Cat c WHERE c.id IN (?)

解决方案

I am unsure how to do this with positional parameter, but if you can use named parameters instead of positional, then named parameter can be placed inside brackets and setParameterList method from Query interface can be used to bind the list of values to this parameter.

...
Query query = session.createQuery("FROM Cat c WHERE c.id IN (:ids)");
query.setParameterList("ids", listOfIds);
...

这篇关于在(...)查询中编写HQL的正确方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆