Session方法
Session的save()和persist()方法Session的save()方法使一个临时对象转变为持久化对象。它完成以下操作:(1)将临时对象加入到Session缓存中,使其进入持久化状态。(2)选用映射文件指定的标识符生成器,为持久化对象分配唯一的OID。(3)计划执行一个insert语句。 Session的save()方法是用来持久化临时对象的。不应将持久化对象或游离对象传递给save()方法。若将持久化对象传递给save()方法,则该步保存操作是多余的。若将游离对象传递给save()方法,则会重新生成OID,再保存一次。Session的persist()方法与save()方法类似,也能将临时对象转变为持久化对象。persist()方法与save()方法的区别在于:persist()方法不保证立即为持久化对象的OID赋值,而是有可能在Session清理缓存的时候才为OID赋值。此外,如果是在事物边界以外调用persist()方法,则该方法不会计划执行insert语句。而save()方法不论是在事物边界以外还是以内,都会计划执行insert语句。Session的load()与get()方法Session的load()与get()方法都能从根据给定的OID从数据库中加载一个持久化对象,这两个方法的区别在于:(1)当数据库中不存在与OID对应的记录时,load()方法抛出org.hibernate.ObjectNotFoundException异常,而get()方法返回为null。(2)load方法采用配置的加载策略(默认为延迟加载),而get()方法则会忽略配置,总是采用立即加载方法。
来源: