Good Relationships

The Spring Data Graph Guide Book

Authors

Michael Hunger, David Montag, Mark Pollack, Thomas Risberg

1.0.0.RELEASE

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Foreword by Rod Johnson
Foreword by Emil Eifrem
About this guide book
I. Tutorial
1. Introducing our project
2. The Spring stack
2.1. Required setup
3. The domain model
4. Learning Neo4j
5. Spring Data Graph
6. Annotating the domain
7. Indexing
8. Repositories
9. Relationships
9.1. Creating relationships
9.2. Accessing related entities
9.3. Accessing the relationship entities
10. Get it running
10.1. Populating the database
10.2. Inspecting the datastore
10.2.1. Neoclipse visualization
10.2.2. The Neo4j Shell
11. Web views
11.1. Searching
11.2. Listing results
12. Adding social
12.1. Users
12.2. Ratings for movies
13. Adding Security
14. More UI
15. Importing Data
16. Recommendations
II. Reference
Preface
17. About Spring Data
18. Introduction to Neo4j
18.1. What is a graph database?
18.2. About Neo4j
18.3. GraphDatabaseService
18.4. Creating nodes and relationships
18.5. Graph traversal
18.6. Indexing
19. Programming model
19.1. AspectJ support
19.1.1. AspectJ IDE support
19.2. Defining node entities
19.2.1. @NodeEntity: The basic building block
19.2.2. @GraphProperty: Optional annotation for property fields
19.2.3. @Indexed: Making entities searchable by field value
19.2.4. @GraphTraversal: fields as traversal result views
19.3. Relating node entities
19.3.1. @RelatedTo: Connecting node entities
19.3.2. @RelationshipEntity: Rich relationships
19.3.3. @RelatedToVia: Accessing relationship entities
19.4. Indexing
19.4.1. Exact and numeric index
19.4.2. Fulltext indexes
19.4.3. Manual index access
19.4.4. Indexing in Neo4jTemplate
19.5. CRUD with repositories
19.5.1. CRUDRepository
19.5.2. IndexRepository and NamedIndexRepository
19.5.3. TraversalRepository
19.5.4. Creating repositories
19.5.5. Composing repositories
19.6. Transactions
19.7. Detached node entities
19.7.1. Relating detached entities
19.8. Entity type representation
19.9. Introduced methods
19.10. Projecting entities
19.11. Bean validation (JSR-303)
20. Environment setup
20.1. Maven configuration
20.1.1. Repositories
20.1.2. Dependencies
20.1.3. AspectJ build configuration
20.2. Spring configuration
20.2.1. XML namespace
20.2.2. Java-based bean configuration
21. Cross-store persistence
21.1. Partial entities
21.2. Cross-store annotations
21.2.1. @NodeEntity(partial = "true")
21.2.2. @GraphProperty
21.3. Configuring cross-store persistence
22. Sample code
22.1. Introduction
22.2. Hello Worlds sample application
22.3. IMDB sample application
22.4. MyRestaurants sample application
22.5. MyRestaurant-Social sample application
23. Performance considerations
23.1. When is Spring Data Graph right
24. Neo4jTemplate
24.1. Basic operations
24.2. Indexing
24.3. Graph traversal
24.4. Path abstraction and PathMapper
24.5. Transactions
25. AspectJ details
26. Neo4j Server
26.1. Server Extension
26.2. Using Spring Data Graph as a REST client