* Bee 在2.2之前,调用批量插入在每个批都会提交commit,但在2.2改为只调用一次且在事务中,在批量插入的方法内容不再提交,而由事务控制.
*
* 2.2之前,批量插入使用每一个批次提交一次事务;
* 这样,当违反主键约束等就忽略的大批量插入效率是很高的;
* 但当事务中有批量插入时,不了解内部执行规则可能会对业务的正确性造成影响.
* 所在Bee在2.2时,默认是所有批次的插入操作只提交一次,如插入100条,每批20条,2.2之前是提交了五次commit,在2.2时改为一次commit;
* 若想在大批量插入时忽略违反约束的失败操作,使用回2.2之前的模式,可以使用配置:bee.osql.eachBatchCommit=true
*
* 在2.2之前,可以将insertBatchSize设置得足够大,将所有记录在一个批次完成,即不会造成多个批次;这样,在事务中,就不会因事务分多批造成事务不准确;
* 但因2.2之前在批处理时,会调用conn.commit();提交了事务,所以用业务逻辑调用rollback()是无效的.
* 2.2时,使用事务时,在批处理内部不会再调用conn.commit().
package org.teasoft.exam.bee.osql.tran;
import java.util.ArrayList;
import java.util.List;
import org.teasoft.bee.osql.BeeException;
import org.teasoft.bee.osql.api.SuidRich;
import org.teasoft.bee.osql.transaction.Transaction;
import org.teasoft.honey.osql.core.HoneyConfig;
import or
BeeORM2.2版本中的事务与批量插入策略变化

文章讲述了BeeORM库在2.2版本中批量插入行为的变化,从每个批次提交事务到仅在事务结束时提交,这可能影响到业务的正确性和事务一致性。开发者需要注意配置来适应新的行为,以确保数据完整性。
最低0.47元/天 解锁文章
2825

被折叠的 条评论
为什么被折叠?



