spring 事务配置:
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="get*" read-only="true"/>
</tx:attributes>
ServiceA
ServiceA {
add(){
}
}
ServiceB
ServiceB {
notTransation() {
sql:addEntity;
}
get() {
sql:addEntity;
}
}
解释:应该是这种没有加入事物的方法调用就类似于 notTransation这个方法体里面的方法全部在add()调用一样。可以提交为ServiceA内部方法调用(这种方式也不会触发事务的传播性)
ServiceB.add调用get可以insert数据
解释: 这个很好理解 REQUIRED的传播就是存在事务就不新建事务
也就是说add新建了一个可写事务,传播到get不会新建一个readonly事务 而是还会用可写事务