Я работаю на зажигать 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 ().
Как я могу решить эту проблему?
Большое спасибо.