我正在研究ignite 2.7.0
我的值类型如下
public class Entity {
String id;
String value;
Date date;
}
然后与缓存进行如下交互
try (Transaction tx =
ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC,TransactionIsolation.SERIALIZABLE)) {
cache1.invoke("k6", new EntryProcessor<String, Entity, Object>() {
@Override
public Object process(MutableEntry<String, Entity> mutableEntry, Object... objects) throws EntryProcessorException {
Entity e = mutableEntry.getValue();
e.setId("hello3");
e.setValue("v3");
mutableEntry.setValue(e);
return null;
}
});
tx.commit();
}
但是提交后输入值不会改变。
如果我按以下方式编写代码,则提交后条目值将更改。
try (Transaction tx =
ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC,TransactionIsolation.SERIALIZABLE)) {
cache1.invoke("k6", new EntryProcessor<String, Entity, Object>() {
@Override
public Object process(MutableEntry<String, Entity> mutableEntry, Object... objects) throws EntryProcessorException {
mutableEntry.setValue(new Entity("test2", "a2", new Date()));
return null;
}
});
tx.commit();
}
我发现,调用mutableEntry.getValue()后,提交后对条目的更改将不会生效。
我该如何解决此问题?
非常感谢。