这几天做的项目马上要Open了.
刚开始按照客户那里拿到的DB Scheme建立数据库.
表的类型都是myisam.
也没有对Transaction做配置.
直到这几天要在测试服务器(和Real环境一样)做测试时才发现.
insert,update,delete操作都不好使了.
原来测试服务器上的table类型都是InnoDB.
后来给Spring分配BO时加了Spring Transaction. 才解决这个问题.
Spring的Transaction配置我就知道2种. 其他还没研究.
第一种
这样只要BO的方法命名是以insert,delete,update,save,create开始的. Spring Transaction会自动分配一个Transaction的.
第二种是 Annotation的方法.
在javaBO方法中使用
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
如果使用这种方法,灵活性高一些.
如果项目刚开始的时候代码规范中详细规定BO的方法名. 可以使用第一个方法.
如果项目业务逻辑复杂, 让维护者容易看到方法的意思,且想使用按照逻辑来取方法名字, 可以使用第二者..
在第二个方法中的annotation部分中 isolation这个后面的具体的值可以按照自己的需求来变更.