代码之家  ›  专栏  ›  技术社区  ›  hvgotcodes

交易问题

  •  1
  • hvgotcodes  · 技术社区  · 14 年前

    显然我在这一点上错了

    Should I always use transactions in nhibernate (even for simple reads and writes)?

    如果没有事务处理,如何从读取中得到不一致的结果?

    编辑——最初的问题是在nhibernate的上下文中。这是nhibernate特有的吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   user166390 user166390    14 年前

    不,它不是特定于休眠的。

    简而言之:事务是“原子工作单元”,具有一致的世界观。一旦事务被保留,受保护的“视图”就需要用世界视图(committed)进行纠正——或者,在只读事务的情况下,可以简单地免除一致视图(它只需要在事务期间保持一致)。

    回答:有许多不同类型的事务(READ UNCOMMITTED、READ COMMITTED、SERIALIZABLE、REPEATABLE READ等)会影响细节。

    看到了吗 Wiki: Database Transaction Isolation (DBMS) --后者需要点击几个链接才能找到:-)

    1. A读取用户列表
    2. B删除用户(和所有相关数据)

    请参阅隔离wiki文章的“示例查询”部分。