java - for循环中控制事务
PHPz
PHPz 2017-04-17 17:45:26
0
3
772

Java项目开发过程中,有for循环,逐条处理10万条数据。由于逐条处理数据的时候,要更新6~7张表,希望,每次在执行for循环的时候,都对数据库做一次提交。
1.我的处理方法 是,将for循环中的方法提出来,然后,使用spring的手动开启事务的方法,在提取出来的方法上,配置了@Transactional(propagation = Propagation.REQUIRES_NEW),但是测试了几次,都没有效果。
2.由于提出处理的方法中,也有更新表,调用外部系统接口,查询表的操作。所以我想把有关联关系的操作 配置 在一个事务中,然后 外层的事务配置和内层的事务配置 如何来管理?

希望 得到各位的解答,谢谢!!!

PHPz
PHPz

学习是最好的投资!

répondre à tous(3)
小葫芦
  1. Si le sujet utilise spring pour effectuer des transactions déclaratives, la méthode appelant directement la méthode interne n'ira pas à la classe proxy (c'est-à-dire qu'elle n'ira pas à l'aspect), donc @Transactionalpeut être invalide

  2. L'interface externe est-elle appelée ici via la méthode RPC ? Si elle est appelée via RPC, il est recommandé au sujet de ne pas la mettre directement dans la transaction, car si un timeout se produit, une longue transaction se produira, et si la concurrence est trop grande, le nombre de connexions à la base de données sera épuisé et le système sera dans un état indisponible.

PHPzhong

https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch04.html

洪涛

Placez la boucle for dans la couche contrôleur ou la couche non-service, puis configurez la transaction sur la méthode de la couche service, afin qu'il soit possible de la soumettre une fois à chaque appel.

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