何时使用Nhibernate<;版本>;?

何时使用Nhibernate<;版本>;?,nhibernate,Nhibernate,我在看ayende关于NHibernate并发性的博客,但我仍然不太清楚何时使用。这似乎是一个解决StaleObjectException的解决方案 有谁能向我解释一下在什么情况下你会使用a,为什么 谢谢 NHibernate在您想要实现时使用。如果不启用乐观并发控制和锁定,您的应用程序将使用“上次提交获胜”策略。如果两个事务几乎同时修改同一对象,您的用户可能会遇到更新丢失的情况。更合适的策略称为“首次提交获胜”。在这个场景中,第二个事务将失败,并出现一个类似这样的错误:有人已经犯了错误 对要提

我在看ayende关于NHibernate并发性的博客,但我仍然不太清楚何时使用。这似乎是一个解决StaleObjectException的解决方案

有谁能向我解释一下在什么情况下你会使用a,为什么

谢谢

NHibernate在您想要实现时使用。如果不启用乐观并发控制和锁定,您的应用程序将使用“上次提交获胜”策略。如果两个事务几乎同时修改同一对象,您的用户可能会遇到更新丢失的情况。更合适的策略称为“首次提交获胜”。在这个场景中,第二个事务将失败,并出现一个类似这样的错误:有人已经犯了错误 对要提交的数据的修改。你一直在和stale一起工作 数据。请使用新数据重新启动对话

发件人:

Hibernate提供了自动版本控制。每个实体实例都有一个 版本,可以是数字或时间戳。休眠增加一个 对象的版本在修改时,会自动比较版本, 并在检测到冲突时引发异常。因此,你 将此版本属性添加到所有持久化实体类以 启用乐观锁定。。。版本号只是一个计数器值,它没有任何有用的语义 价值实体表上的附加列由Hibernate应用程序使用。 请记住,访问同一数据库的所有其他应用程序都可以 (并且可能应该)还实施乐观版本控制,并使用相同的方法 版本列