Hallo,
gibt es im embedded mode eine Möglichkeit, den erfolgreichen commit() eines anderen ObjectContainer abzufragen oder eine Benachrichtigung zu erhalten? Wenn ich in einem ObjectContainer commit() aufrufe und direkt für einen anderen refresh(), sind die Änderungen in manchen Fällen noch nicht verfügbar.
Konkret soll möchte ich erreichen dass das Ui (separater ObjectContainer) sobald möglich auf die Änderungen einer anderen Write-Transaktion aktualisiert werden kann.
Habe ich da etwas übersehen? Wäre für Tipps dankbar.
public class EntityTest {
public int;
}
Db4o.configure().io(new MemoryIoAdapter());
ObjectServer server = Db4o.openServer("test", 0);
ObjectContainer c1 = server.openClient();
ObjectContainer c2 = server.openClient();
// first commit container 1
EntityTest entity = new EntityTest();
entity.i = 1;
c1.set(entity);
c1.commit();
// instanciate duplicate in container 2
ObjectSet<EntityTest> result = c2.get(new EntityTest());
EntityTest entity2 = result.next();
assertEquals(1, entity2.i);
// second commit container 1
entity.i = 2;
c1.set(entity);
c1.commit(); // commit i=2
// refresh container 2
c2.ext().refresh(entity2, 2);
assertEquals(2, entity2.i); // in manchen Fällen: expected:<2> but was:<1>