对象的状态:
1临时状态(新建状态):没有保存到数据库之前的状态
2持久化状态:(托管状态)数据库有,也在session缓存中
3游离状态:(脱管状态)数据库中有,但session里面没有
4删除状态:数据库没有,session也没有
对象的转换:
临时到持久化:
调用sava():设置对象的id 不会出错,persist():设置对象id 则会报错
无到持久化:
get()即时加载:
1立即调用SQL语句,
2若数据库中没有对应的记录则返回null,
3Session关闭了之后也可以使用对象.
load()延迟加载
1:不会调用SQL语句,用的时候则调用SQL语句,
2若数据库没有相应的数据则出错,
3Session若关闭,会出现懒加载的问题.
持久化状态到游离状态:
close()
evict()将对象中的session移除
游离状态到持久化状态:
update()
1.如果要更新一个持久化的对象,则可以不用调用update()方法
2.如果要更新一个游离状态的对象,则需要调用update()方法
saveorupdate()
如果数据库中没有记录则添加,如果指定了id,则修改记录
持久化状态到删除状态
调用方法delete()
游离状态到删除状态
调用方法delete()