Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL)

  对此错误的解读一般是:只读模式下 写操作不允许

  具体原因是对Spring事务的理解:

    Spring事务一般会对运行期外的事务进行回滚,且对@Transactional注释可配置,搭配一定的属性可达到用户的一般需求,如只读(即只查询)、事务回滚等 。

  @Transactional(RollbackFor=Class.class/noRollbackFor=Class.class): 一般为遇到某种异常回滚或不会滚 这种配置适合处理在事务操作工程中对某种异常的显操作和隐操作 对数据插入的作用比较有意义。

  还有就是事务传播性:

    配置一般为@Transactional(propagation=Propagation.XXX):

      具体属性:

           REQUIRED:如果有事务,那么加入事务,没有的话新建一个

           NOT_SUPPORTED:不开启事务

           REQUIRES_NEW:强制创建新事务

           MANDATORY:需在已有的事务中执行,否则报错

           NEVER:与上一个相反

           Supports:其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.

                还要后面有时会跟readOnly=true  只读

                        timeout=XX 超时

 

暂时这么多 以后详细补充

  

    

posted @ 2013-01-15 23:06  到永玖  阅读(548)  评论(0编辑  收藏  举报