HQL的命名参数

 

如下:

 

......

String hql = "from user where name=? and sex=? and ....";

Query q = s.createQuery (hql);

q.setString (0,name);
q.setString (1,sex);

......

 

从上段代码可看出,如果where后面的参数过多,在进行匹配的时候容易混淆,所以产生了HQL的命名参数,如下:

......

String hql = "from user where name = :name and sex = :sex and ..."

Query q = s.createQuery (hql);

q.setString ("name",name);
q.setString ("sex",sex);

......

 从上面代码看出,后者更具有操作性,如果在HQL中多次使用参数,可以一次修改替换,也不会造成混淆。

你可能感兴趣的:(HQL)