hibernate的对象状态和opensessioninviewfilter的作用

来源:互联网 发布:mysql最大连接数 编辑:程序博客网 时间:2024/06/06 09:42

hibernate的对象状态分为三种:

瞬时状态(未持久化,新new的对象),持久状态(在数据库中有值的对象,具体是怎么操作的?是通过主键id来关联判断的吗?),游离状态(db中不存在,已经被删除,但是在程序中还保持该引用的对象);

对于持久化对象,在session清理缓存即flush方法的时候会做检查,检查对象中的属性是否发生变化,如果发生了变化(比如set了一些值),那么就会和数据库做同步,也就是执行一些update语句.此点身为重要!!!

对于OpenSessionInviewFilter这个类来说,含义是从请求来了到响应回来都是创建一个线程绑定的session,这意味着整个请求都会持有session,也就是统一个session缓存,请求中所涉及到的对象都是在session中的,要注意对象的状态.对于这种情况,显然session是持有数据库连接connection时间是比较长的,这对于并发量非常大但是计算量又很大的应用是不适合的.

自己在工作中碰到的问题,这里记录下.可能有些记得不对,以后再来看再来补正!


原创粉丝点击