spring.xml:文件
1 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 2 <tx:attributes> 3 <tx:method name="save*" propagation="REQUIRED" read-only="false" /> 4 <tx:method name="add*" propagation="REQUIRED" read-only="false" /> 5 <tx:method name="delete*" propagation="REQUIRED" read-only="false" /> 6 <tx:method name="update*" propagation="REQUIRED" read-only="false" /> 7 <tx:method name="list*" propagation="REQUIRED" read-only="true" /> 8 <tx:method name="get*" propagation="REQUIRED" /> 9 <tx:method name="import*" propagation="REQUIRED" read-only="false" /> 10 <tx:method name="export*" propagation="REQUIRED" read-only="true" /> 11 <tx:method name="*" propagation="REQUIRED" read-only="true" /> 12 </tx:attributes> 13 </tx:advice>
分析:service层里面有参与事物的方法没有按以上规则来命名,而以上配置文件规定了数据库操作函数必须要以上面的字符串开头,否则的话就按照默认的配置,对数据库访问的权限为read-only。
引用 https://www.cnblogs.com/jbml-154312/p/6867587.html#undefined
是自己对spring的事务理解不够,这个是自己配置的