db4o prática recomendada para consultar objetos do db
Estou usando duas maneiras diferentes de consultar objetos no db4o e gostaria de discutir sobre iss
1) Neste primeiro exemplo, crio uma instância do ObjectContainer, abro a conexão e depois a fech
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), "User");
ObjectSet result = db.queryByExample(user);
db.close();
2) Neste segundo exemplo, crio um ObjectServer e deixo a conexão aberta por todo o ciclo de vida do aplicativo. Também abro o ObjectContainer no ObjectServer, faço minha consulta e depois a fecho:
ObjectServer userDb = Db4oClientServer.openServer(Db4oClientServer.newServerConfiguration(), "User", 0);
ObjectContainer client = client = userDb.openClient();
ObjectSet result = client.queryByExample(user);
client.close();
-
Quais são as principais diferenças entre os dois métodos? É perigoso se eu nunca fechar o ObjectServer?
Na minha opinião, o segundo método é melhor, porque se duas instâncias diferentes chamarem o método mostrado no primeiro exemplo, o segundo chamador receberá uma exceção, porque o banco de dados seria bloqueado, mas no segundo exemplo eu não tenho esse um problema. Como não tenho muita experiência com o db4o, prefiro perguntar se estou no caminho certo.