先提交事务后释放锁解决办法

方法1:

/**
     * 事务结束后释放锁
     */
    private void unlockAfterTransaction() {
        //事物完成后释放锁
        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
            @Override
            public void afterCompletion(int status) {
                super.afterCompletion(status);
//                distLockSservice.unlock(lockResult);
            }
        });
    }

未验证。

方法2:

将有事务的抽取出来,加锁释放锁操作在无事务的方法中。同一个类无事务方法A调用有事务方法B不能直接调用,否则事务不生效。应使用service.B()调用,事务才会生效。

方法3:

手动开启事务,提交事务,回滚事务。不由切面管理事务。

 

posted @ 2022-07-20 09:37  super超人  阅读(608)  评论(0)    收藏  举报