延迟加载也称为懒加载,是Hibernate3关联关系对象默认的加载方式,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。简单理解为,只有在使用的时候,才会发出sql语句进行查询。
延迟加载的有效期是在session打开的情况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
(具体可以搜索一下Hibernate的一些文档介绍)。
拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。例如:在你购买商品后,去购物车进行付款时,拦截器或者过滤器会起作用来验证是否已登录,若未登录则转向登陆界面。过滤器和拦截器的作用,我个人感觉差不多。
立即加载和拦截器的使用不存在必要的关系,拦截器有自己的作用,就看你想用不想用他了。
事务:首先应该理解这个词在SQL里面是什么意思?
事务就是一组简单的逻辑单元,事务的四个特性:原子性、一致性、隔离性、持久性。
事务的分类:显示、隐式、自动提交。
事务的创建:开始事务:begin transcation、
提交事务:commit transaction、
回滚事务:rollback transaction。
希望能帮到您!
web请求处理的过程大致是 过滤器-controller-渲染jsp-过滤器。懒加载的问题主要发生在要渲染jsp的时候 hibernate session已经关闭,所以解决这个问题的方案应该是在过滤器中把hibernate session关闭。上述代码也不是这个问题最好的解决方法,事务的控制一般是要放在service层,在过滤器中只做开启hibernate session,绑定hibernate session 至threadlocal上,最后关闭hibernate session就行了。可以查一下open session in view
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....