1、采用StringBuilder StringBuffer拼接字符串生成语句方式
在这种方式中,hql 可以使用问号(?) 代替参数 再通过set方式传入参数; 但在sql语句中不能使用问号传参, sql语句想采用这种方式传参的话 可以用 “”+param+"" 的形式传入参数 param处填写传入的参数 然后再采用toString 生成语句即可。
2、直接写语句方式
hql采用new数组的方式传参或者set方式传参都可以
例如:.find(" from CustomerCountDto t where t.dayId=?",new Object[]{dayId})
sql语句采用问号方式 然后通过set方式传递参数
3、传递集合参数
hql和sql一样 都可以通过 in (:name) .setParameterList("name", paramList) 方式传递集合参数 其中 两处的name必须相同
例如:List<CustomerCountDto > list = session.createQuery(" from CustomerCountDto where dayId in (:isList)")
.setParameterList("isList", paramList)
.list;
paramList即为传递进来的集合