Hallo
ich verwende eine Datenbank die beim Anlegen mit generateUUIDs(ConfigScope.globally) erstellt wurde.
Configruation conf = Db.newConfiguration();
if (ServerConfig.IsCreate() == true) {
conf.generateUUIDs(ConfigScope.GLOBALLY);
}
Db4o.openServer(conf, ..., ...);
Die Methode generateUUIDs(..) soll ja nur beim Anlegen der Datenbank aufgerufen werden. Soweit so gut. Wenn ich den Server (im c/s Modus) mit dem o.g. Modus anlege und anschließend ein Objekt speichere funktioniert alles einwandfrei, d.h. das Objekt und alle späteren Objekte der Datenbank werden mit UUIDs angelegt.
Wenn ich jedoch den Server beende und anschließend (ServerConfig.IsCreate = false) mit der neu angelegten leeren Datenbank neu starte, werden die Objekte ohne UUIDs gespeichert. Der Aufruf von
public long GetUUID() {
Db4oUUID uuid = Database.GetBase().ext().getObjectInfo(this).getUUID();
try {
return uuid.getLongPart();
}
catch (RuntimeException e) {
return 0;
}
}
führt dann (und nur dann) zu einer Ausnahme. Ist das so gewollt ?
Beste Grüße
Arne
Arne Stocker