////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////

= GORM for Neo4j
Stefan Armbruster, Graeme Rocher, Puneet Behl
:revnumber: {version}
:imagesdir: ./images
:source-highlighter: coderay

[[introduction]]
== Introduction

include::{includedir}/introduction.adoc[]

[[compatibility]]
=== Compatibility with GORM for Hibernate

include::introduction/compatibility.adoc[]

[[releaseNotes]]
=== Release History

include::introduction/releaseNotes.adoc[]


[[upgrading]]
=== Upgrading from previous versions

include::introduction/upgrading.adoc[]

[[gettingStarted]]
== Getting Started


include::gettingStarted.adoc[]

[[configurationOptions]]
=== Neo4j Bolt Driver Configuration Options

include::gettingStarted/configurationOptions.adoc[]


[[usingNeo4jStandalone]]
=== Using Neo4j Standalone

include::gettingStarted/usingNeo4jStandalone.adoc[]

[[combiningNeo4jAndHibernate]]
=== Combining Neo4j And Hibernate

include::gettingStarted/combiningNeo4jAndHibernate.adoc[]

[[springBoot]]
=== Using GORM in Spring Boot

include::gettingStarted/springBoot.adoc[]

[[standalone]]
=== GORM for Neo4j without Grails

include::gettingStarted/standalone.adoc[]

[[mapping]]
== Mapping Domain Classes to Nodes

include::mapping.adoc[]

[[idGeneration]]
=== Neo4j ID generators

include::mapping/idGeneration.adoc[]

[[associations]]
=== Understanding Association Mapping

include::mapping/associations.adoc[]

[[labelStrategy]]
=== Customizing the Label Strategy

include::mapping/labelStrategy.adoc[]

[[schemaless]]
=== Dynamic Properties and Associations

include::mapping/schemaless.adoc[]

[[relationships]]
== Mapping Domain Classes to Relationships

include::relationships.adoc[]

[[relationshipType]]
=== Controlling the Relationship Type

include::relationships/relationshipType.adoc[]

[[relationshipType]]
=== Querying and Relationships

include::relationships/relationshipQuerying.adoc[]



[[querying]]
== Querying with GORM for Neo4j

include::querying.adoc[]

[[lazyLoading]]
=== Understanding Lazy Loading

include::querying/lazyLoading.adoc[]

[[cypher]]
=== Querying with Cypher

include::querying/cypher.adoc[]

[[indexing]]
=== Defining the Query Index

include::querying/indexing.adoc[]

[[paths]]
=== Querying for Paths

include::querying/paths.adoc[]

[[queryingRelationships]]
=== Querying for Relationships

include::querying/queryingRelationships.adoc[]

[[dataServices]]
=== GORM for Neo4j Data Services

include::dataServices.adoc[]

[[testing]]
== Testing

include::testing.adoc[]

[[multipleDataSources]]
== Multiple Data Sources
include::multipleDataSources/index.adoc[]

[[multiTenancy]]
== Multi-Tenancy
include::multiTenancy/index.adoc[]


[[neo4jEnhancements]]
== Enhancements to Neo4j Java Driver API

include::neo4jEnhancements.adoc[]

[[reference]]
== Reference

[[ref-additional-gorm-methods]]
=== Additional Gorm Methods

[[ref-additional-gorm-methods-cypher]]
==== cypher

include::ref/Additional Gorm Methods/cypher.adoc[]

[[ref-additional-gorm-methods-cypherStatic]]
==== cypherStatic

include::ref/Additional Gorm Methods/cypherStatic.adoc[]


==== Schemaless Attributes

include::ref/Additional Gorm Methods/schemaless attributes.adoc[]




