Contrary to the documentation (Parameters - Cypher Manual), the following command does not work in version 4.0 (4.0.0 Enterprise, local db in Neo4j Desktop):
CYPHER 3.5
MATCH (n:Person)
WHERE n.age > {agelimit}
RETURN n.name, n.age
Neo.ClientError.Statement.SyntaxError
The old parameter syntax {param} is no longer supported. Please use $param instead (line 3, column 15 (offset: 42)) "WHERE n.age > {agelimit}"
Yes, sure. I was referring to the compatibility features in the documentation that say that the old syntax can be executed with that CYPHER 3.5 prefix. In that case the query should be executed with a warning, but there is the same error as trying it without that prefix.
There is a bug here that I believe will go out with the next patch release, which should again allow {} type params to work as expected when using the CYPHER 3.5 prefix.
I am using Neo4j 4.0.3 with Neo4j Desktop Neo4j 1.2.7. I am getting this same error while using ORM/OGMs like neomodel or py2neo
py2neo.database.ClientError: SyntaxError: The old parameter syntax {param} is no longer supported. Please use $param instead (line 1, column 45 (offset: 44))
"MATCH (_:CommConfig) WHERE _.BaseConfigId = {1} RETURN _"
Unless you're using the CYPHER 3.5 prefix, this is likely only a tangentially related question.
You may want to check to see if you're using the right versions of your ORM/OGM libraries, they would need to be new enough to work with Neo4j 4.0.x. Likely you're using older versions that have not yet changed the syntax of their emitted Cypher.