1.集合变量toString()后,查询数量过多会导致stackoverflowerror
2.HQL是面向对象的查询语言,
所有的列名表示类的属性名;
所有的表名表示类名。
因此,属性名和类名区分大小写,关键字不区分大小写。
3.查询多个属性时,list容器里是对象数组;查询对象时,list容器里是对应的实体类;查询单个属性时,list容器里是属性名对应的数据类型。
4.占位符使用:
(1)占位符为单个值时,使用query.setParameter(arg0, arg1)
arg0:表示占位符的索引(从左往右,从上到下,从0开始)
arg1:占位符的值
(2)占位符为集合时,使用query.setParameterList(arg0, arg1)
arg0:表示占位符的索引(从左往右,从上到下,从0开始)
arg1:对象数组或者集合
5.命名查询
<query name="queryByIdRange">
<![CDATA[FROM Employee e where e.id>=:idMin and e.id<=:idMax]]>
</query>
使用Query query = session.getNamedQuery("queryByIdRange");
query.setParameter("idMin", 5);
query.setParameter("idMax", 15);
List list = query.list();
6.update与delete不会通知session的缓存刷新。