现在做一个移动段预约的接口,假设只能预约10个,但是有时候高并发会预约到11,
不知道怎么才能做一个正确的事务处理。求大神指教
把你有问题的代码放上来看看
spring xml 文件里面配置,applicationContext_DB_oracle.xml 我用的oracle ,你可以根据你的数据库类型选择
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="del*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="update*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="delete*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="oper*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="approval*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="release*" propagation="REQUIRED"
read-only="false" rollback-for="Exception" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allAllMethod"
expression="execution(* org.springframework.*.quartz.*(..))" />
<aop:pointcut id="allManagerMethod"
expression="execution(* com.synchrobit.*.service..*.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod"
advice-ref="txAdvice" />
<aop:advisor pointcut-ref="allAllMethod"
advice-ref="txAdvice" />
</aop:config>
给表上个锁,流程操作结束前不让读写表