db4o Developer Community

db4o open source object database, native to Java and .NET
Welcome to db4o Developer Community Sign in | Join
in Search
More Search Options

generateUUIDs und leere Datenbank

Last post 10-12-2008, 07:52 AM by Arne411. 2 replies.
Sort Posts: Previous Next
  •  10-06-2008, 02:03 PM 51385

    generateUUIDs und leere Datenbank

    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
  •  10-06-2008, 08:05 PM 51393 in reply to 51385

    Re: generateUUIDs und leere Datenbank

    Arne411:
    Die Methode generateUUIDs(..) soll ja nur beim Anlegen der Datenbank aufgerufen werden

    Wo steht das? Beziehst Du Dich auf die JavaDocs?

     /**
         * configures db4o to generate UUIDs for stored objects.
         * 
         * This setting should be used when the database is first created.<br><br>
         * @param setting the scope for UUID generation: disabled, generate for all classes, or configure individually
         */

    Ich interpretiere die mal so: Wenn man mit UUIDs arbeitet, sollte man von Anfang an mit der entsprechenden Config arbeiten, weil UUIDs später aktivieren, evtl. nicht ganz ohne Probleme ist. Aber wenn Du damit arbeitest, musst Du die Config (wie eigentlich alle anderen Configs auch, einzige Ausnahme sind m.E. Indices) natürlich dafür immer setzen.

    Grüße, Maik

     


    http://db4o.blogspot.com/
  •  10-12-2008, 07:52 AM 51485 in reply to 51393

    Re: generateUUIDs und leere Datenbank

    Hallo Maik

    Danke für die Rückmeldung. Du hast höchswahrscheinlich recht und ich habe die Doku falsch interpretiert.

     
    Gruß Arne
     


    Arne Stocker
View as RSS news feed in XML