WEB开发网
开发学院软件开发Java Spring Web Flow 2 中流管理的持久化 阅读

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(read

@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 流中的持久化编程,包括一些展示了流管理持久化的局限性的用例。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Spring Web Flow

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接