![]() |
1
7
事务隔离模式通常在hibernatem.cfg.xml文件中设置: <property name=“connection.isolation”>已提交</属性> http://www.nhforge.org/doc/nh/en/index.html#configuration-hibernatejdbc
http://msdn.microsoft.com/en-us/library/system.data.isolationlevel.aspx 你必须检查FireBird文档,看看它支持哪些文档。 关于您的异常,您在更新记录时遇到了死锁,这在关系数据库中是意料之中的。您应该准备好捕获死锁异常并重新尝试该操作。这与NHibernate和关系数据库如何支持事务无关。基本上,您遇到了这样一种情况:您试图在两个不同的事务中更新相同的两个记录a和B。一个事务在a上有一个锁,另一个事务在B上有一个锁。每个事务需要在另一个记录上有一个锁才能完成。数据库引擎选择一个死锁受害者,回滚其事务,抛出一个死锁异常,并允许另一个事务完成。如果它不这样做,两个事务将永远等待(或事务超时)另一个事务完成。(这可能是一个更复杂的记录、r1..rN和多个事务的循环,但同样的想法也适用)最终的结果是,作为一个应用程序开发人员,无论您使用的是NHibernate、raw ADO.net还是任何其他利用关系数据库的技术,您都必须准备好重新尝试这种死锁操作。 |
![]() |
2
2
除了James解释的默认隔离级别之外,还可以使用
|
![]() |
blogger13 · 视频租赁店数据库的规范化 5 月前 |
![]() |
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 6 月前 |
|
Grenish Rai · Firestore错误“用户文档不存在” 9 月前 |
![]() |
Saijo-Shi · PLpgsql中的更新触发器 10 月前 |
![]() |
Dante · Django::配置不当:池不支持持久连接 10 月前 |
![]() |
YouLocalRUser · 删除重复行,保留第一行 11 月前 |