thanks for your reply. i use below configuration for the cache. partitioned, 2 backup, transactional. Do these matter?
Ilya Kasnacheev <[email protected]> 于2019年1月21日周一 下午7:42写道: > Hello! > > I was able to run your first & second fragments with expected behavior: > > Entity{id='hello3', value='v3', date=2019-01-21} > > Note that I'm using 2.7. > > Regards, > -- > Ilya Kasnacheev > > > пн, 21 янв. 2019 г. в 08:43, c c <[email protected]>: > >> Hi, >> I work on ignite 2.7.0 >> >> I have a value type as below >> >> public class Entity { >> String id; >> String value; >> Date date; >> } >> >> then interact with cache as below >> >> 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(); >> } >> >> But entry value does not change after commit. >> >> If i code as below, entry value would change after 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(); >> } >> >> I found that changes to entry would not take effect after commit when >> mutableEntry.getValue() called. >> >
