Spring Web Flow 2 中流管理的持久化
2010-05-18 00:00:00 来源:WEB开发网@Transactional(readOnly=false,propagation=PROPAGATION_REQUIRED,
isolation=ISOLATION_DEFAULT,timeout=TIMEOUT_DEFAULT)
readOnly:通过指定 @Transactional(readOnly=false) 建立读/写事务,这样会使持久化上下文的 FlushMode 变为 AUTO。应用 @Transactional(readOnly=true) 会使底层 Hibernate 会话的 FlushMode 变为 MANUAL。
JPA 1.0 不支持 MANUAL 刷新以及只读事务,因此只有在底层 JPA 提供商,比如 Hibernate,支持只读数据库事务时,@Transactional(readOnly=true) 才有意义。而且,Hibernate 将此设置用作针对某些数据库类型的数据库提示从而优化查询性能。
propagation:propagation 属性确定当前方法是在继承的事务下运行,还是通过挂起/继续封闭事务在新事物中运行,或者根本没有在事务中运行。
isolation:JPA 1.0 不支持自定义隔离级别,因此开发人员需要指定数据库端的默认事务隔离级别。Read-Committed 是乐观锁工作所需的最低级别。
timeout:timeout 属性指定在超时(以及被底层事务基础设施自动回滚)之前事务可以运行多长时间 。
rollbackFor、rollbackForClassname、noRollbackFor、noRollbackForClassname: 一般而言,在出现表示系统错误的 RuntimeException 异常时事务总是回滚,在遇到带有预定义业务意义的检查型 Exception 时总是会提交。可以通过这 4 个回滚属性自定义默认语义。
Spring 核心包的健壮的事务基础设施使绝大部分真实开发场景中的事务管理更加轻松。在下面各节中,我们将了解 Spring Web Flow 如何利用 Spring 事务基础设施连同其自己的流作用域的持久化上下文对象来处理各种 Web 流中的持久化编程,包括一些展示了流管理持久化的局限性的用例。
- ››web安全之信息刺探防范1
- ››webqq 最新加密算法
- ››webdriver 数据库验证方法
- ››Spring源码学习-含有通配符路径解析(上)
- ››WebSphere Application Server 7.0 XML Feature P...
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››WebLogic调整Java虚拟机性能优化参数
- ››webqq2.0协议研究(3)-ClientId生成
- ››Web.config配置文件
- ››WebBrowser组件的execWB方法——Delphi控制浏览器...
- ››Web前端设计模式--制作漂亮的弹出层
更多精彩
赞助商链接