配置文件中配置:
<query name="getUser">
<![CDATA[
FROM User WHERE Id = :Id AND ( lower(userName) LIKE :nameOrEmail OR lower(email) LIKE :nameOrEmail ) AND Info.status IN( :status) ORDER BY lastTime DESC, userName ASC
]]>
</query>
代码调用:
Query query = HibernateUtil.getSession().getNamedQuery("getUser");
query.setInteger("Id", Id);
query.setString(USER_NAME_OR_EMAIL, "%" + fuzzyUserNameOrEmail.toLowerCase() + "%");
query.setParameterList(STATUS, status);
return (List<UserPO>) query.list();
query.setParameterList中的第二个参数,数组类型、list集合都可以;
in 参数的设置,IN( :status)
Integer status[] = new Integer[]{0,1,2,3};
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);