代码之家  ›  专栏  ›  技术社区  ›  Don Branson marios

使用Hibernate进行无事务处理

  •  0
  • Don Branson marios  · 技术社区  · 16 年前

    有没有办法选择hibernate将用事务包装的更新?受ebay尽可能无需交易的驱动,我知道我的应用程序中有许多更新不需要acid编写。例如,有一个更新包含一个用户id和另一个表的id。只有一个用户可以插入此记录,我知道它不需要是事务。那么,如何禁用这个insert或这个insert表的事务?

    编辑:

    好吧,考虑到我的底层数据库是MySQL——看来我得按表选择。任何不需要事务的表都可以设置为myisam而不是innodb。啊,好吧,不是我要找的答案。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Steven Levine    16 年前

    见: Hibernate Tx Documentation

    一般的答案是,这取决于您如何调用hibernate。上面的文档精确地解释了如何通过hibernate api控制事务边界。

        2
  •  0
  •   Kristen    16 年前

    我对冬眠一无所知,但我的想法是:

    如果您没有显式地开始事务/提交,那么它将完成它的工作(除非您打开了隐式事务)。

    如果每个页面(工作单元)只有一个insert/update,那么该页面本身就是acid,所以是否启动显式事务并不重要。

    但是,一个覆盖了整个页面的db事务的隐式事务可以确保,如果您在以后添加了一些内容,而忘记了页面没有隐式事务,那么您将从您自己身上拯救自己!