1 Session的save()方法用于保存临时对象,并将其状态转化为持久状态,纳入Session的缓存中
2 Session的update()方法用于更新持久对象或是重新将托管对象纳入Session缓存持久对象。
3 Session的saveorupdate()方法包括了 save 和update方法。saveOrUpdate()方法会自动判断传入的对象处于什么状态,如果对象是零食状态 则调用save()方法。如果是托管或者是持久状态 则调用 update()方法。
4 不管是save,update,saveorupdate,delete方法,在方法调用的时候并不发送SQL语句,而是要等事物提交清理 Session缓存时才会发送SQL语句(也可以在事务提交前用Session的flush方法清理缓存,发送SQL语句)
5 get()方法通过主键ID立即检索对象(不管次对象在配置文件中设置的是不是立即还是延迟检索)当对象不存在是返回NULL
6 如果是延迟检索,load()方法不会发送SQL语句到数据库,它简单的生成一个代理,此代理对象只拥有主键ID,此对象在被使用的时候,首先会在缓存中更具ID查询对象,如果缓存中没有才从数据库中加载。如果拥有次ID的数据在数据库中不存咋,LOAD()方法会抛出例外。
7 Iterator()方法首先会从数据库中检索对象的ID,然后在缓存中查找是否有此Id的值对象存在,如果有直接返回,如果没有则发送SQL语句冲数据库中加载。对于缓存中已有数据 使用iterator方法可以改善性能,因为只需要重数据库中加载ID字段;如果缓存中没有这些对象,则次方法反而会儿影响性能,因为它一开始就要多发送SQL语句去的ID·······
8 Session的Clear()方法用于清空当前的Session缓存,evict方法用于将一个对象从缓存中清楚。
9 设置casade="delete"在删除根对象的时候会删除级联附属对象,casade="delete-orphan"主要用于重集合中删除对象,删除的对象会成为托管对象。一对一,一对多casade="save-update"