class GraphglueNeo4jOperations(val delegate: ReactiveNeo4jOperations, val neo4jClient: ReactiveNeo4jClient, val beanFactory: BeanFactory, val renderer: Renderer) : ReactiveNeo4jOperations

ReactiveNeo4jOperations which supports save of lazy loaded relations

Parameters

delegate

provides ReactiveNeo4jOperations functionality

neo4jClient

used to execute Cypher queries

beanFactory
renderer

used to render Cypher queries

Constructors

Link copied to clipboard
constructor(delegate: ReactiveNeo4jOperations, neo4jClient: ReactiveNeo4jClient, beanFactory: BeanFactory, renderer: Renderer)

Properties

Link copied to clipboard
private val beanFactory: BeanFactory
Link copied to clipboard
private val delegate: ReactiveNeo4jOperations
Link copied to clipboard
private val neo4jClient: ReactiveNeo4jClient
Link copied to clipboard
Link copied to clipboard
private val renderer: Renderer

Functions

Link copied to clipboard
private fun MutableMap<RelationshipGroupKey, MutableSet<Relationship>>.addAggregationEntry(nodeDefinition: NodeDefinition, relationshipDefinition: RelationshipDefinition, node: Node, relatedNodes: Collection<Node>, nodeIdLookup: Map<Node, String>)

Groups all relatedNodes by their RelationshipGroupKey and adds them to the MutableMap

Link copied to clipboard
private fun addRelationships(key: RelationshipGroupKey, relationships: Set<Relationship>): Mono<Void>

Adds a group of relationships, where the key.relationshipDefinition has (if present) direction OUTGOING and key.inverseRelationshipDefinition has direction INCOMING If necessary, also adds reverse relationships with _type for authorization purposes

Link copied to clipboard
open override fun count(domainType: Class<*>?): Mono<Long?>?
open override fun count(cypherQuery: String?): Mono<Long?>?
open override fun count(statement: Statement?): Mono<Long?>?
open override fun count(cypherQuery: String?, parameters: Map<String?, Any?>?): Mono<Long?>?
open override fun count(statement: Statement?, parameters: Map<String?, Any?>?): Mono<Long?>?
Link copied to clipboard
open override fun deleteAll(domainType: Class<*>?): Mono<Void?>?
Link copied to clipboard
open override fun <T : Any?> deleteAllById(ids: Iterable<*>?, domainType: Class<T?>?): Mono<Void?>?
Link copied to clipboard
open override fun <T : Any?> deleteById(id: Any?, domainType: Class<T?>?): Mono<Void?>?
Link copied to clipboard
open override fun <T : Any?> deleteByIdWithVersion(id: Any?, domainType: Class<T?>?, versionProperty: Neo4jPersistentProperty?, versionValue: @Nullable Any?): Mono<Void?>?
Link copied to clipboard
private fun deleteRelationships(key: RelationshipGroupKey, relationships: Set<Relationship>): Mono<Void>

Deletes a group of relationships The relationships are defined by the key.relationshipDefinition and key.inverseRelationshipDefinition

Link copied to clipboard
private fun executeStatement(statement: Statement): Mono<Void>

Executes a Neo4J Statement using the client

Link copied to clipboard
open override fun <T : Any?> existsById(id: Any?, domainType: Class<T?>?): Mono<Boolean?>?
Link copied to clipboard
open override fun <T : Any?> findAll(domainType: Class<T?>?): Flux<T?>?
open override fun <T : Any?> findAll(cypherQuery: String?, domainType: Class<T?>?): Flux<T?>?
open override fun <T : Any?> findAll(statement: Statement?, domainType: Class<T?>?): Flux<T?>?
open override fun <T : Any?> findAll(cypherQuery: String?, parameters: Map<String?, Any?>?, domainType: Class<T?>?): Flux<T?>?
open override fun <T : Any?> findAll(statement: Statement?, parameters: Map<String?, Any?>?, domainType: Class<T?>?): Flux<T?>?
Link copied to clipboard
open override fun <T : Any?> findAllById(ids: Iterable<*>?, domainType: Class<T?>?): Flux<T?>?
Link copied to clipboard
open override fun <T : Any?> findById(id: Any?, domainType: Class<T?>?): Mono<T?>?
Link copied to clipboard
open override fun <T : Any?> findOne(cypherQuery: String?, parameters: Map<String?, Any?>?, domainType: Class<T?>?): Mono<T?>?
open override fun <T : Any?> findOne(statement: Statement?, parameters: Map<String?, Any?>?, domainType: Class<T?>?): Mono<T?>?
Link copied to clipboard
private fun getNodesToSave(node: Node): Collection<Node>

Gets the related nodes to save of a node

Link copied to clipboard

Gets a set of nodes which should be saved

Link copied to clipboard
open override fun <T : Any> save(instance: T): Mono<T>

Saves an instance of an entity For relations managed by SDN: saves all the related entities of the entity. For relations managed by GraphGlue: saves only added related entities

Link copied to clipboard
open override fun <T : Any> saveAll(instances: Iterable<T>): Flux<T>

Saves several instances of an entity Implemented by calling save for each instance

Link copied to clipboard
open override fun <T : Any, R : Any> saveAllAs(instances: Iterable<T>, resultType: Class<R>): Flux<R>

Save via projections is not supported

open fun <T : Any?> saveAllAs(instances: Iterable<T?>?, includeProperty: BiPredicate<PropertyPath?, Neo4jPersistentProperty?>?): Flux<T?>?
Link copied to clipboard
private fun saveAllRelationships(nodesToSave: Map<Node, String>): Mono<Void>

Saves all relationships of nodeToSave

Link copied to clipboard
open override fun <T : Any, R : Any> saveAs(instance: T, resultType: Class<R>): Mono<R>

Save via projections is not supported

open fun <T : Any?> saveAs(instance: T?, includeProperty: BiPredicate<PropertyPath?, Neo4jPersistentProperty?>?): Mono<T?>?
Link copied to clipboard
private fun saveNodes(entities: Iterable<Node>): Flux<Node>

Saves a single Node including all lazy loaded relations Important: it has to be ensured that the returned node is newly loaded from the database Sometimes, the internal save method does not reload it. In this case, we have to find it by id manually

Link copied to clipboard
open override fun <T : Any?> toExecutableQuery(preparedQuery: PreparedQuery<T?>?): Mono<ReactiveNeo4jOperations.ExecutableQuery<T?>?>?
open override fun <T : Any?> toExecutableQuery(domainType: Class<T?>?, queryFragmentsAndParameters: QueryFragmentsAndParameters?): Mono<ReactiveNeo4jOperations.ExecutableQuery<T?>?>?
Link copied to clipboard
private fun validateNodes(nodes: Set<Node>)

Validates all relationship properties of all provided nodes