命名查询
<hibernate-mapping>
<class name="cn.jbit.houserent.bean.User"
table="users">
<!--省略其他配置-->
</class>
<query
name="loginUser">
<![CDATA[
from
User u where u.name =:name and u.password
=:password
]]>
</query>
</hibernate-mapping>
<query>元素用于定义一个HQL
查询语句,它和<class>元素并列
以<![CDATA[HQL]]>方式保存HQL
语句
在程序中通过Session
对象的getNamedQuery()方法获取该查询语句
本地SQL 查询

总结
HQL优化从哪几个方面考虑?
Hibernate数据加载方式有哪些?有什么区别?
HQL联接查询有几种方式?
在映射文件中如何定义命名查询?
如何使用本地SQL查询?
补充:
List不走缓存,不分步查询iterater缓存、分步
[fetch]
把第二个对象作为第一个对象的一部分,会对结果影响。
<![CDATA[ SQL语句] ]>
cdata避免重载字符(特殊符号)的编译
String sql = "select {u.*} from users";
加上"{}"是属性,不加是字段
执行SQL时,SQLQuery query =
session.createSQLQuery(sql).addEntity("u",User.class); 把声明的u给填充进去,有多少实体声明过,都需要填充(.addEntity())