Skip to main content

不安全的操作

  • 整表更新
  • 更新主键列
  • 更新整行
  • 整表删除

整表更新

整表更新 会影响表中的所有数据,如果希望执行此类操作需要调用 allowEmptyWhere 方法允许空条件。

EntityUpdateOperation<TestUser> update = lambdaTemplate.lambdaUpdate(TestUser.class);
int result = update.allowEmptyWhere()
.updateBySample(sample)
.doUpdate();

更新主键列

最低 v5.2.0

更新主键列 主键一般是不具备业务属用于标识数据的 ID 标识。因此 ID 一直不提倡更新。

如果业务系统的确有需要将主键值进行变更那么需要调用 allowUpdateKey 方法允许更新主键列。

int result = lambdaTemplate.lambdaUpdate(TestUser.class)
.eq(TestUser::getId, 1)
.allowUpdateKey() // 允许更新主键
.updateBySample(newData)
.doUpdate();

更新整行

最低 v5.2.0

更新整行 整行更新是根据查询条件,将匹配的所有列都进行更新。这种操作容易引发意外的数据替换。

如果业务系统的确有需要将主键值进行变更那么需要调用 allowReplaceRow 方法允许更新整行。

int result = lambdaTemplate.lambdaUpdate(TestUser.class)
.eq(TestUser::getId, 1)
.allowReplaceRow() // 允许更新整行
.updateTo(newData)
.doUpdate();

整表删除

整表删除 会删除所使用 delete 语句删除所有数据,如果希望执行此类操作需要调用 allowEmptyWhere 方法允许空条件。

EntityDeleteOperation<TestUser> delete = lambdaTemplate.lambdaDelete(TestUser.class);
int result = delete.allowEmptyWhere().doDelete()