Hi, On Thu, Nov 12, 2009 at 10:17 AM, ekke <e...@ekkes-corner.org> wrote: > since two weeks I'm following this user list and also read documentation > at your web sites. > many years ago I worked with ODBMS (FastObjects, Versant) and I like it > to persist my structures as object graphs. > > in recent projects I'm using RDBMS (DB2) with EJB3 / JPA / Hibernate > > my projects are for small and medium-sized companies, but the business > apps are complex and there are many > use-cases where traversing a tree of nodes is the most important thing > and I dont like all the mapping needed with > hibernate > > now I found Neo4J and it seems to be a good solution, so I think I could > give it a try. > > do you think I can use it for a normal enterprise business application, > where the most time the user is > navigating thru associations ? >
Yes, sounds like Neo4j is a very good fit. > I could imagine to to write (synchronize) all data important for BI to a > RDBMS, but use Neo as the main DB for live data > > some questions: > * exists something like optimistic locking or have I to implement this > by myself > * exists something like entity versioning (http://www.jboss.org/envers/) By default read operations will not take any locks at all, writes will take a write lock on the node/relationship. Entity versioning can be implemented using a property on a node or relationship. We are thinking about adding native support for versioning (removing write locks) but that is not in development yet. > * is reporting possible with Neo4J, perhaps using Eclipse BIRT with > custom ODA extension > > my application is based on osgi (equinox) at server site and also for > clients (eclipse rcp) > > whats the recommended way to connect clients with Neo4J ? direct access > from the client > or (what I would prefer) thru remote OSGI Services ? Do I run into > similar things like > Hibernate Lazy Access Exceptions ? > We are an embedded database so it is recommended (when not embedding it in your application) to wrap it in a thin layer raising the abstraction level from nodes/relationships/properties to application/domain level before exposing it as a service. You will not run into the Hibernate lazy access exceptions when using Neo4j. Everything is lazy load so just pretend the entire graph is in memory (no load/store pattern). Regards, -Johan _______________________________________________ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user