国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

java - Comment intercepter les exceptions et les restaurations lorsque le multithreading est activé dans une transaction au printemps?
女神的閨蜜愛(ài)上我
女神的閨蜜愛(ài)上我 2017-06-12 09:26:37
0
1
1814

Supposons que j'utilise 2 threads dans une transaction pour accélérer le traitement. Si la méthode userDao.addOrg() renvoie une RuntimeException, la transaction ne sera pas annulée et l'erreur ne sera pas détectée. Que dois-je faire ?

ExecutorService executorService = Executors.newCachedThreadPool();
        
@Transactional(rollbackFor=Throwable.class)
public void add(){
        
        CountDownLatch cdl = new CountDownLatch(2);
        executorService.submit(new Runnable() {
            
            public void run() {    
                userDao.addOrg(); //拋出RuntimeException異常
                cdl.countDown();
            }
        });
        
        executorService.submit(new Runnable() {
            
            public void run() {    
                userDao.addSystem();    
                cdl.countDown();
            }
        });
        
        cdl.wait(10,TimeUnit.SECONDS);
}
女神的閨蜜愛(ài)上我
女神的閨蜜愛(ài)上我

répondre à tous(1)
世界只因有你

@Transactional ne peut contr?ler que les transactions à thread unique, les threads enfants ne sont donc pas contr?lés par les transactions sur la méthode add. Vous pouvez démarrer une nouvelle transaction sur la méthode appelée par le thread enfant et revenir en arrière.

Autoriser les threads enfants à appeler des méthodes contr?lées par les transactions?:

executorService.submit(new Runnable() {
            
            public void run() {    
                addOperation.addMethod();
            }
        });
@Component
class AddOperation{
    @Transactional
    public addMethod(){
       userDao.addOrg(); //拋出RuntimeException異常
       cdl.countDown();
    }
}

Notez que @Transactional est implémenté via un proxy, donc addMethod doit être placé dans la nouvelle classe AddOperation et ne peut pas être placé dans la classe où se trouve la méthode add.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal