使用Hibernate实现无事务处理

使用Hibernate实现无事务处理,hibernate,transactions,Hibernate,Transactions,有没有办法挑选Hibernate将用事务包装的更新?受EBay尽可能实现无交易的驱动力的启发,我知道我的应用程序中有许多更新不需要进行修改。例如,有一个由用户id和另一个表的id组成的更新。只有一个用户可以插入此记录,我知道它不需要是事务。那么,如何禁用这一次插入的事务,或对这一个表的插入 编辑: 好吧,考虑到我的底层数据库是mysql,看起来我必须逐个表进行选择。任何不需要事务的表都可以设置为myisam而不是innodb。啊,好吧,这不是我想要的答案。见: 一般的答案是,这取决于您如何调用h

有没有办法挑选Hibernate将用事务包装的更新?受EBay尽可能实现无交易的驱动力的启发,我知道我的应用程序中有许多更新不需要进行修改。例如,有一个由用户id和另一个表的id组成的更新。只有一个用户可以插入此记录,我知道它不需要是事务。那么,如何禁用这一次插入的事务,或对这一个表的插入

编辑:

好吧,考虑到我的底层数据库是mysql,看起来我必须逐个表进行选择。任何不需要事务的表都可以设置为myisam而不是innodb。啊,好吧,这不是我想要的答案。

见:


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

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

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

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

但是,一个限定整个页面的DB事务范围的隐式事务将确保,如果您将来添加了一些内容,忘记了该页面没有隐式事务,那么您将从自己的数据库中拯救自己