2009-02-13 95 views
0

有没有办法选择和选择Hibernate将用事务包装的更新?受eBay驱动尽可能无事务处理的启发,我知道我的应用程序中有许多更新,不需要进行ACID写入。例如,有一个更新包含用户标识和另一个表的标识。只有一个用户可以插入此记录,并且我知道它不需要成为事务。那么,我该如何禁用这个插入事务,或者插入到这个表中呢?使用Hibernate进行交易

编辑:

好,因为我根本DB是MySQL的 - 它看起来像我不得不在一个表一个表的基础选择。任何不需要交易的表都可以设置为myisam而不是innodb。啊,好吧,不是我正在寻找的答案。

+0

https://www.hibernate.org/403.html – hakre 2012-08-28 10:20:18

回答

1

参见:Hibernate Tx Documentation

一般的答案是这取决于你如何调用休眠。上面的文档解释了如何通过Hibernate API来控制事务边界。

0

我不知道任何关于Hibernate的,但我的想法是:

如果你没有明确的BEGIN TRANSACTION/COMMIT那么它会做的,它的-东西(除非你有隐性事务开启)。

如果每页只有一个INSERT/UPDATE(工作单元),那么该页面本质上是ACID,因此无论您是否启动并显式事务,都不重要。

但是,隐式事务处理整个页面的数据库事务的范围将确保如果您将来添加了某些内容,忘记该页面没有隐式事务处理,您可以将自己从自己身上拯救出来!