繁体   English   中英

Hibernate + SQL Server:一个事务阻塞所有其他事务

[英]Hibernate + SQL Server: One Transaction blocks all other transactions

我正在使用 Spring + Hibernate + SQL-Server 开发服务器应用程序,并且我认识到我的所有事务都在阻止其他事务,即使其他事务没有触及相同的表/行并且这些表之间没有关系。

这是一个屏幕截图:

交易报告

截图显示A表的delete语句阻塞了表B的select语句,但是表之间没有关系。 根据我的理解,一个事务应该只锁定一个表或行,而另一个将命中锁定的表或行的事务将被阻止。 但为什么所有交易都被阻止? 我误解了什么吗?

找到了解决办法:

这个过程是一个复制过程。 一开始我为整个过程打开了一个事务,并在这个过程中复制了 n 个对象。 当我需要在复制选择时进行选择时被阻止。 所以我决定每次复制一个对象时打开一个事务,然后在复制过程之后关闭这个对象的事务。 所以选择不再被阻止。 这种设计就像 Windows 中的复制过程。 如果您决定取消复制过程,则已复制的文件将保留。 就像在我的情况下,已经复制的对象将保留,因为事务已关闭并为每个对象单独提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM