Estoy probando el objeto databse db4o y hasta ahora me gusta bastante lo que estoy viendo, pero también leí esta publicación en stackoverflow db4o experiences? indicando que no todo lo que parece tan fácil es fácil.Algunas preguntas sobre el trabajo con db4o
En este momento, tengo algunas preguntas sobre cómo se usa db4o en las aplicaciones del mundo real. Entonces, si tienes alguna experiencia trabajando (especialmente en el contexto de la aplicación web) con db4o, me encantaría escucharlos.
Aquí están mis preguntas:
¿Cómo gestionar la identidad del objeto cuando se trabaja con objetos db4o almacenado **
Viniendo de fondo RDBMS en la que normalmente siempre tiene una columna de clave principal/identidad para todos los? mesa, no puedo imaginar en este momento cómo administrar la identidad del objeto en db4o.Por ejemplo, si estaba trabajando con NHibernate/mysql y necesitaba encontrar un objeto Usuario por id, haría session.Load (primaryKey) y será recuperado por su PK. También es muy común que PK se defina como incremento automático en la definición de la tabla.
Como no existe tal opción en db4o, pensé en utilizar una estructura Guid para identificar algunos objetos en la base de datos de objetos.
¿Alguna herramienta para ver los objetos almacenados en la base de datos?
¿Hay algo así como SQL Server Management Studio (probablemente menos sofisticado) en el mundo db4o? Me gustaría ver los datos/objetos ya almacenados en el archivo db.
¿Estás jodido al renombrar los objetos de tu dominio?
Por lo que sé cuando se cambia el nombre de una clase, ya no se pueden recuperar las instancias previamente almacenadas en la base de datos. ¿Hay alguna forma de solucionar este problema? ¿Cómo maneja las actualizaciones contra una base de datos en vivo que ya contiene muchos objetos?
¿Puedo excluir que las propiedades se guarden en la base de datos?
Si, por ejemplo, un objeto de dominio contiene una referencia a un objeto de servicio (sin estado), entonces el objeto de servicio también se mantendrá si el objeto de dominio se conserva, ¿no?
Parece un poco extraño tener un servicio guardado en la base de datos, al menos para mí.
¿Se puede excluir la instancia de servicio de la que se guarda? Si el objeto de dominio se recupera nuevamente, ¿cómo puedo asegurarme de que el servicio también se vuelva a inyectar en la instancia?
+1 Esta es una buena pregunta, me gustaría poder ayudarte. –