@@ -271,13 +271,11 @@ public Statement prepareSaveOf(NodeDescription<?> nodeDescription,
271
271
.where (possibleExistingNode .isNull ()).create (rootNode )
272
272
.set (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM ))).returning (rootNode .internalId ()).build ();
273
273
274
- // needs a dedicated variable for the union function in the CypherDSL.
275
- Node nodeToUpdate = node (primaryLabel , additionalLabels ).named (Constants .NAME_OF_ROOT_NODE );
276
274
Statement updateIfExists = updateDecorator
277
- .apply (match (nodeToUpdate ).where (nodeToUpdate .property (nameOfIdProperty ).isEqualTo (idParameter ))
278
- .and (nodeToUpdate .property (versionProperty .getName ()).isEqualTo (parameter (Constants .NAME_OF_VERSION_PARAM )))
279
- .mutate (nodeToUpdate , parameter (Constants .NAME_OF_PROPERTIES_PARAM )))
280
- .returning (nodeToUpdate .internalId ()).build ();
275
+ .apply (match (rootNode ).where (rootNode .property (nameOfIdProperty ).isEqualTo (idParameter ))
276
+ .and (rootNode .property (versionProperty .getName ()).isEqualTo (parameter (Constants .NAME_OF_VERSION_PARAM )))
277
+ .mutate (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM )))
278
+ .returning (rootNode .internalId ()).build ();
281
279
return Cypher .union (createIfNew , updateIfExists );
282
280
283
281
} else {
@@ -291,9 +289,6 @@ public Statement prepareSaveOf(NodeDescription<?> nodeDescription,
291
289
Statement createIfNew ;
292
290
Statement updateIfExists ;
293
291
294
- // needs a dedicated variable for the union function in the CypherDSL.
295
- Node nodeToUpdate = node (primaryLabel , additionalLabels ).named (Constants .NAME_OF_ROOT_NODE );
296
-
297
292
if (((Neo4jPersistentEntity ) nodeDescription ).hasVersionProperty ()) {
298
293
299
294
PersistentProperty versionProperty = ((Neo4jPersistentEntity ) nodeDescription ).getRequiredVersionProperty ();
@@ -304,18 +299,18 @@ public Statement prepareSaveOf(NodeDescription<?> nodeDescription,
304
299
.set (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM )))
305
300
.returning (rootNode .internalId ()).build ();
306
301
307
- updateIfExists = updateDecorator .apply (match (nodeToUpdate ).where (nodeToUpdate .internalId ().isEqualTo (idParameter ))
308
- .and (nodeToUpdate .property (versionProperty .getName ()).isEqualTo (parameter (Constants .NAME_OF_VERSION_PARAM )))
309
- .mutate (nodeToUpdate , parameter (Constants .NAME_OF_PROPERTIES_PARAM ))).returning (nodeToUpdate .internalId ()).build ();
302
+ updateIfExists = updateDecorator .apply (match (rootNode ).where (rootNode .internalId ().isEqualTo (idParameter ))
303
+ .and (rootNode .property (versionProperty .getName ()).isEqualTo (parameter (Constants .NAME_OF_VERSION_PARAM )))
304
+ .mutate (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM ))).returning (rootNode .internalId ()).build ();
310
305
} else {
311
306
createIfNew = updateDecorator
312
307
.apply (optionalMatch (possibleExistingNode ).where (possibleExistingNode .internalId ().isEqualTo (idParameter ))
313
308
.with (possibleExistingNode ).where (possibleExistingNode .isNull ()).create (rootNode )
314
309
.set (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM )))
315
310
.returning (rootNode .internalId ()).build ();
316
311
317
- updateIfExists = updateDecorator .apply (match (nodeToUpdate ).where (nodeToUpdate .internalId ().isEqualTo (idParameter ))
318
- .mutate (nodeToUpdate , parameter (Constants .NAME_OF_PROPERTIES_PARAM ))).returning (nodeToUpdate .internalId ()).build ();
312
+ updateIfExists = updateDecorator .apply (match (rootNode ).where (rootNode .internalId ().isEqualTo (idParameter ))
313
+ .mutate (rootNode , parameter (Constants .NAME_OF_PROPERTIES_PARAM ))).returning (rootNode .internalId ()).build ();
319
314
}
320
315
321
316
return Cypher .union (createIfNew , updateIfExists );
0 commit comments