1. 实体对象的三个状态: 游离/瞬时/持久态。
区分这三个状态之间的转换关系很重要。
2. session的get()和load()方法的区别:
- 记录不存在的时候处理方式不同,get返回为空,load方法抛出一个hibernateException异常
- load可返回实体的代理类实例,而get方法永远直接返回实体类
- load可利用hibernate内容的缓存和二级缓存中的现有数据。但get直接从内部缓存中进行数据查找,如果没有则直接执行sql进行查询,返回数据对象。
3. Hibernate的查询方法
- HQL
通过sessionFactory创建Query对象;t通过setMaxResults,setFirstResult,setFetchSize进行分页的获取。
基于类似SQL语法的面向对象的方法,构建查询语句。
- Criteria方法
通过Session创建Criteria,使用Restriction/Expression来构建查询语句。