gpt4 book ai didi

java - 删除多个 key ——可以是事务性的吗?

转载 作者:行者123 更新时间:2023-12-02 01:59:35 24 4
gpt4 key购买 nike

这是我们的代码:

@Override
public boolean delete(String instance, final String storeName, String... keys) {
final Boolean[] isSuccess = {false};
final List<String> keyList = Arrays.asList(keys);
final Environment env = Environments.newInstance(xodusRoot + instance);
env.executeInTransaction(new TransactionalExecutable() {
@Override
public void execute(@NotNull final Transaction txn) {
final Store store = env.openStore(storeName, StoreConfig.WITHOUT_DUPLICATES, txn);
for (String key : keyList) {
isSuccess[0] = store.delete(txn, StringBinding.stringToEntry(key));
}
}
});
env.close();
return isSuccess[0];
}

对此我有两个问题。

  • 这是事务性的吗,因为该函数用于删除多个键,如果一个键无法删除其他键,这会起作用吗不会被删除。喜欢全有还是全无?
  • 如果在 txn 中由于某种原因发生异常,例如 key 或 storeName 为 null,应该如何处理?或者没关系,因为如果出现异常,交易会失败并自动回滚?

最佳答案

Xodus 是一个符合 ACID 的事务数据库。除其他外,这意味着事务中数据的突变是一致的。在您的情况下,所有指定的键(事务已提交)或没有键(事务中止)都将被删除。如果事务因某种原因(异常、系统/硬件故障)中断,则不会修改任何内容,并且事务会自动回滚。

关于java - 删除多个 key ——可以是事务性的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51830499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com