From c9996cff4436e685f38a015a58ce632c4f96f8b7 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Mon, 19 Dec 2011 10:24:43 +0100 Subject: [PATCH] updated documentation for spring data neo4j 2.0 --- src/docbkx/reference/aspectj-details.xml | 2 +- src/docbkx/reference/attachdetach.png | Bin 0 -> 123456 bytes src/docbkx/reference/cross-store.xml | 5 ++- src/docbkx/reference/performance.xml | 31 +++++++++---- .../programming-model/attachdetach.xml | 23 +++++++--- .../programming-model/beanvalidation.xml | 5 ++- .../programming-model/node-entities.xml | 20 +++++++++ .../programming-model/repositories.xml | 2 +- .../programming-model/simple_mapping.xml | 7 +++ .../programming-model/transactions.xml | 2 +- .../typerepresentationstrategy.xml | 8 ++-- src/docbkx/reference/samples.xml | 34 +++++++++++++- src/docbkx/reference/setup.xml | 42 ++++++++++++++---- 13 files changed, 146 insertions(+), 35 deletions(-) create mode 100644 src/docbkx/reference/attachdetach.png diff --git a/src/docbkx/reference/aspectj-details.xml b/src/docbkx/reference/aspectj-details.xml index ccca1cab4..62b3962dc 100644 --- a/src/docbkx/reference/aspectj-details.xml +++ b/src/docbkx/reference/aspectj-details.xml @@ -3,7 +3,7 @@ AspectJ details - The object graph mapper of Spring Data Neo4j relies heavily on AspectJ. AspectJ is a Java implementation + The advanced mapping mode of Spring Data Neo4j relies heavily on AspectJ. AspectJ is a Java implementation of the aspect-oriented programming paradigm that allows easy extraction and controlled application of so-called cross-cutting concerns. Cross-cutting concerns are typically repetitive tasks in a system (e.g. logging, diff --git a/src/docbkx/reference/attachdetach.png b/src/docbkx/reference/attachdetach.png new file mode 100644 index 0000000000000000000000000000000000000000..4d535acc683af2b8add916f3ef6f49de15091322 GIT binary patch literal 123456 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%0A< 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

F0%}Y59WOLfs&dqG-Tq}U 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 RWdQ+yk0lhu3&jjy{x9W^9M%8; literal 0 HcmV?d00001 diff --git a/src/docbkx/reference/cross-store.xml b/src/docbkx/reference/cross-store.xml index ae617c0de..b94389069 100644 --- a/src/docbkx/reference/cross-store.xml +++ b/src/docbkx/reference/cross-store.xml @@ -3,7 +3,8 @@ Cross-store persistence - The Spring Data Neo4j project support cross-store persistence, which allows for parts of the data to be + The Spring Data Neo4j project support cross-store persistence for the advanced mapping mode, + which allows for parts of the data to be stored in a traditional JPA data store (RDBMS), and other parts in a graph store. This means that an entity can be partially stored in e.g. MySQL, and partially stored in Neo4j. @@ -23,7 +24,7 @@ A backing node in the graph store is only created when the entity has been assigned a JPA ID. Only then will the association between the two stores be established. Until the entity has been persisted, its state is just kept inside the POJO (in detached state), and then flushed to the backing graph - database on persist(). + database on the persist operation. The association between the two entities is maintained via a FOREIGN_ID field in the node, that diff --git a/src/docbkx/reference/performance.xml b/src/docbkx/reference/performance.xml index 10b2b4eaa..501f53786 100644 --- a/src/docbkx/reference/performance.xml +++ b/src/docbkx/reference/performance.xml @@ -8,7 +8,7 @@ of using Spring Data Neo4j instead of the Neo4j API directly.

- When is Spring Data Neo4j right + When to use Spring Data Neo4j The focus of Spring Data Neo4j is to add a convenience layer on top of the Neo4j API. This enables developers to get up and running with a graph database very quickly, having their domain objects @@ -16,23 +16,38 @@ more efficient ways to explore and process the graph - if the performance requirements demand it. - Like any other object mapping framework, the domain entities that are created, read, or persisted + Like with any other object mapping framework, the domain entities that are created, read, or persisted represent only a small fraction of the data stored in the database. This is the set needed for a certain use-case to be displayed, edited or processed in a low throughput fashion. The main advantages of using an object mapper in this case are the ease of use of real domain objects in your business - logic and also with existing + logic and also the integration with existing frameworks and libraries that expect Java POJOs as input or create them as results. Spring Data Neo4j, however, was not designed with a major focus on performance. It does add some overhead - to pure graph operations. Something to keep in mind is that any access of properties and relationships - will in general read through down to the database. To avoid multiple reads, it is sensible to store the - result in a local variable in suitable scope (e.g. method, class or jsp). - + to pure graph operations. + Most of the overhead comes from the use of the Java Reflection API, which is used to provide information about annotations, fields and constructors. Some of the information is already cached - by the JVM and the library, so that only the first access gets a performance penalty. + by the JVM and the library infrastructure from Spring-Data-Commons, so that only the first access gets a performance penalty. + Other reflection penalties like field or method access will occur all the time. + + For the simple mapping it is important to be aware of the size graph of data that is pulled out of the + graph database in a single read and copied to domain entities. That's why Spring Data Neo4j loads + related data not by default. You have to provide an indicator (@Fetch) to do so. Alternatively + the Neo4jTemplate.fetch method offers means of of loading entities and collections of those. + + + For the advanced mapping mode keep in mind that any access of properties and relationships + will in general read through down to the database. To avoid multiple reads, it is sensible to store the + result in a local variable in suitable scope (e.g. method, class or jsp). + + + To evaluate if the performance of Spring Data Neo4j impacts a certain use-case it is sensible to define + performance requirements and measure the actual time in realistic test scenarios for the use-case. Only if + Spring Data Neo4j doesn't perform as fast as required it is recommended to drop down to the native Neo4j API. +
diff --git a/src/docbkx/reference/programming-model/attachdetach.xml b/src/docbkx/reference/programming-model/attachdetach.xml index 42e558b77..a8ea87689 100644 --- a/src/docbkx/reference/programming-model/attachdetach.xml +++ b/src/docbkx/reference/programming-model/attachdetach.xml @@ -1,24 +1,35 @@
- Detached node entities + Detached node entities in advanced mapping mode + + This section only applies to the advanced mapping (AspectJ-backed). The simple mapping always detaches entities on + load as it copies the data out of the graph into the entities and stores it back fully too. + Node entities can be in two different persistence states: attached or detached. By default, newly created node - entities are in the detached state. When persist() is called on the entity, it becomes + entities are in the detached state. When persist() or template.save() is called on the entity, it becomes attached to the graph, and its properties and relationships are stores in the database. If - persist() is not called within a transaction, it automatically creates an implicit - transaction for the operation. + the save operation is not called within a transaction, it automatically creates an implicit + transaction only for the operation. Changing an attached entity inside a transaction will immediately write through the changes to the datastore. Whenever an entity is changed outside of a transaction it becomes detached. The - changes are stored in the entity itself until the next call to persist(). + changes are stored in the entity (its fields) itself until the next call to a save operation. All entities returned by library functions are initially in an attached state. Just as with any other entity, changing them outside of a transaction detaches them, and they must be reattached with persist() for the data to be saved. + + + + + + + @@ -82,7 +93,7 @@ movie.setTopActor(actor); It is a matter of Java references and is not related to the data model in the database. - The persist operation (merge) stores all properties of the entity to the graph database + The save operation (merge) stores all properties of the entity to the graph database and puts the entity in attached mode. There is no need to update the reference to the Java POJO as the underlying backing node handles the read-through transparently. If multiple object instances that point to the same node are persisted, the ordering is not important diff --git a/src/docbkx/reference/programming-model/beanvalidation.xml b/src/docbkx/reference/programming-model/beanvalidation.xml index 989b4060a..e3fc8e3f8 100644 --- a/src/docbkx/reference/programming-model/beanvalidation.xml +++ b/src/docbkx/reference/programming-model/beanvalidation.xml @@ -3,11 +3,12 @@
Bean validation (JSR-303) - Spring Data Neo4j supports property-based validation support. When a property is changed, it is + Spring Data Neo4j supports property-based validation support. When a property is changed and persisted, it is checked against the annotated constraints, e.g. @Min, @Max, @Size, etc. Validation errors throw a ValidationException. The validation support that comes with Spring is used for evaluating the constraints. To use this feature, a validator - has to be registered with the GraphDatabaseContext. + has to be registered with the Neo4jTemplate, which is done automatically by the Neo4jConfiguration + if one is present in the Spring Config. Bean validation diff --git a/src/docbkx/reference/programming-model/node-entities.xml b/src/docbkx/reference/programming-model/node-entities.xml index ed7c4b08f..83748f340 100644 --- a/src/docbkx/reference/programming-model/node-entities.xml +++ b/src/docbkx/reference/programming-model/node-entities.xml @@ -39,6 +39,26 @@ public class Movie {
+
+ @GraphId: Neo4j -id field + + For the simple mapping this is a required field which must be of type Long. It is used + by Spring Data Neo4j to store the node or relationship-id to re-connect the entity to the graph. + + + + It must not be a primitive type because then the "non-attached" case can not be represented as the + default value 0 would point to the reference node. Please make also sure that + an equals() and hashCode() method have to be provided which take the id + field into account (and also handle the "non-attached", null case). + + + + For the advanced mapping such a field is optional. Only if the underlying id has to be accessed, it is + needed. + +
+
@GraphProperty: Optional annotation for property fields diff --git a/src/docbkx/reference/programming-model/repositories.xml b/src/docbkx/reference/programming-model/repositories.xml index 1e3f0ce37..3c391f11e 100644 --- a/src/docbkx/reference/programming-model/repositories.xml +++ b/src/docbkx/reference/programming-model/repositories.xml @@ -314,7 +314,7 @@ Iterable davesFriends = repo.findAllByTraversal(dave, Composing repositories , PersonRepositoryExtension {} -// configure the repositories, preferably via the datagraph:repositories namespace +// configure the repositories, preferably via the neo4j:repositories namespace // (template reference is optional) diff --git a/src/docbkx/reference/programming-model/simple_mapping.xml b/src/docbkx/reference/programming-model/simple_mapping.xml index be19a3ac5..9658ea7c5 100644 --- a/src/docbkx/reference/programming-model/simple_mapping.xml +++ b/src/docbkx/reference/programming-model/simple_mapping.xml @@ -30,6 +30,13 @@ for classes. Both Neo4jPersistentEntitity as well as Neo4jPersistentProperty provide access to that information on their scope. + + + Please note that if you have two collections in an entity pointing to the same relationship and one of them has data and the other is + empty due to the nature of persisting it, one will override the other in the graph so that you might end up with no data. If you want + a relationship-collection to be ignored on save set it to null. + + Examples for loading entities from the graph diff --git a/src/docbkx/reference/programming-model/transactions.xml b/src/docbkx/reference/programming-model/transactions.xml index 0f210754d..c8980ebc4 100644 --- a/src/docbkx/reference/programming-model/transactions.xml +++ b/src/docbkx/reference/programming-model/transactions.xml @@ -82,7 +82,7 @@ One can also configure a stock XA transaction manager (e.g. Atomikos, JOTM, App-Server-TM) to be - used with Neo4j and the other resources. For a bit less secure but fast 1 phase commit best effort, + used with Neo4j and the other resources. For a bit less secure but fast 1-phase-commit-best-effort, use ChainedTransactionManager, which comes bundled with Spring Data Neo4j. It takes a list of transaction managers as constructor params and will handle them in order for transaction start and commit (or rollback) in the reverse order. diff --git a/src/docbkx/reference/programming-model/typerepresentationstrategy.xml b/src/docbkx/reference/programming-model/typerepresentationstrategy.xml index 22eaa80a6..e4e388f41 100644 --- a/src/docbkx/reference/programming-model/typerepresentationstrategy.xml +++ b/src/docbkx/reference/programming-model/typerepresentationstrategy.xml @@ -8,16 +8,16 @@ this type information is saved in the graph database. - Implementations of TypeRepresentationStrategy take care of persisting this information on entity instance + Implementations of TypeRepresentationStrategy take care of persisting this information during entity instance creation. They also provide the repository methods that use this type information to perform their operations, - like findAll and count. + like findAll and count. The derived finderMethods also use the type information for graph global queries. There are three available implementations for node entities to choose from. - IndexingNodeTypeRepresentationStrategy + IndexingNodeTypeRepresentationStrategy this is the default strategy used. Stores entity types in the integrated index. Each entity node gets indexed with its type and @@ -25,7 +25,7 @@ is called__types__. Additionally, in order to get the type of an entity node, each node has a property __type__ - with the type of that entity. + with the fully qualified type of that entity. diff --git a/src/docbkx/reference/samples.xml b/src/docbkx/reference/samples.xml index 04f318781..07489a7f2 100644 --- a/src/docbkx/reference/samples.xml +++ b/src/docbkx/reference/samples.xml @@ -24,6 +24,10 @@ The unit tests demonstrate some other features of Spring Data Neo4j as well. The sample comes with a minimal configuration for Maven and Spring to get up and running quickly. + + The Hello Worlds application is available both for the simple mapping (hello-worlds) + and for the advanced mapping (hello-world-aspects). + Executing the application creates the following graph in the graph database: @@ -42,7 +46,7 @@ roles in different movies. It also uses graph traversal operations to calculate the Bacon number of any given actor. This sample application shows the usage of Spring Data Neo4j in a more complex setting, using several - annotated entities and relationships as well as indexes and graph traversals. + annotated entities and relationships as well as indexes and in-graph indexes and graph traversals. See the readme file for instructions on how to compile and run the application. @@ -98,5 +102,33 @@
+
+ Cineasts social movie database + + The cineasts.net application was introduced extensively in the first part of this guide, the + tutorial. The tutorial covers the development of the simple mapping version of cineasts. + + + To document the differences, versions for the advanced mapping (cineasts-aspects) + and accessing the remote server (cineasts-rest) are also available. + + + A online version of cineasts can be found on cineasts.net. + A sample dataset of the cineasts databse is available at the neo4j sample-data page. + + + This is a subset of the visualization of the cineasts graph for the "Matrix" movie. + + + + + + + + + + + +
diff --git a/src/docbkx/reference/setup.xml b/src/docbkx/reference/setup.xml index 5c122cd34..f0104b493 100644 --- a/src/docbkx/reference/setup.xml +++ b/src/docbkx/reference/setup.xml @@ -17,15 +17,15 @@
Dependencies for Spring Data Neo4j Simple Mapping - For the POJO mapping it is enough to add the org.springframework.data:spring-data-neo4j:2.0.0.RC1 dependency - to your project. If you want to use the Cypher query language please add org.neo4j:neo4j-cypher:1.5 + For the simple POJO mapping it is enough to add the org.springframework.data:spring-data-neo4j:2.0.0.RELEASE dependency + to your project. If you want to use the Cypher query language please add org.neo4j:neo4j-cypher:1.6.M02 Maven dependencies for Spring Data Neo4j org.springframework.data spring-data-neo4j -2.0.0.RC1 +2.0.0.RELEASE ]]> @@ -43,8 +43,8 @@ org.springframework.data spring-data-neo4j-aspects - 2.0.0.RC1 + 2.0.0.RELEASE @@ -139,7 +139,7 @@ repositories { [ org.neo4j neo4j-cypher - 1.5 + 1.6.M02 ] ]]> @@ -272,6 +272,29 @@ repositories { ]]>
+
+ Repository Configuration + + Spring Data Neo4j repositories are configured using the <neo4j:repositories> + element which defines the base-package (or packages) for the repositories. + A reference to an existing Neo4jTemplate bean reference can be passed in as well. + + + As Spring Data Neo4j repositories build upon the infrastructure provided by + + Spring Data Commons, + the configuration options for repositories described there work here as well. + + + XML configuration for repositories + + + + + ]]> + +
Java-based bean configuration @@ -279,7 +302,7 @@ repositories { - For those not familiar with Java-based bean metadata in Spring, we recommend that you + For those not familiar with Java-based bean configuration in Spring, we recommend that you read up on it first. The Spring documentation has a high-level introduction as well as @@ -316,7 +339,8 @@ repositories { - Additional beans can be configured to be included in the Neo4j-Configuration. ConversionService for custom conversions, + Additional beans can be configured to be included in the Neo4j-Configuration just by defining them in the Spring context. + ConversionService for custom conversions, Validators for bean validation, TypeRepresentationStrategyFactory for configuring the in graph type representation, IndexProviders for custom index handling (e.g. for multi-tenancy), Entity-Instantiators (with their config) to have more control over the creation of entity instances and much more.