¿Cómo pasar una lista generada dinámicamente de nombres y valores de propiedades en Neo4j para java?

Estoy usando el controlador Neo4j para Java que le permite ejecutar una consulta con parámetros. Tengo una lista generada dinámicamente de cadenas que actúan como consultas, y cada consulta tiene diferentes parámetros. Los ejemplos de cadenas de consulta incluyen:

"CREAR (a: Persona {id: {id}, nombre: {nombre}})"

"CREATE (a: Persona {id: {id}, nombre: {name}}, edad: {age}})"

"CREAR (a: Persona {id: {id}, edad: {edad}})"

Para cada una de estas consultas, necesitaría pasar diferentes parámetros con los valores apropiados para que la inserción del nodo funcione correctamente.

El fragmento de código para lo que intento hacer se da a continuación:

try (Transaction tx = session.beginTransaction()) {
                String queryStr = "CREATE (a:Person {id:{id}, name:{name}})";
                tx.run(query, Values.parameters("id", "testId", "name", "testName"));
}

Este fragmento de código funciona para pares de propiedades clave-valor no generados dinámicamente. Para el propósito de este ejemplo, he codificado el valor de la cadena de consulta (normalmente, la transacción se ejecutaría en un bucle y cada cadena de consulta se leería de una lista). Ahora, cuando intento pasar parámetros, solo puedo hacerlo usando la sintaxis anterior.

Por ejemplo, la sintaxis:

try (Transaction tx = session.beginTransaction()) {
                String queryStr = "CREATE (a:Person {id:{id}, name:{name}})";
                Map<String, String> parameterKeyValueMap = new HashMap<String, String>();
                parameterKeyValueMap.put("id", "id");
                parameterKeyValueMap.put("name", "testName");
                tx.run(query, Values.parameters(parameterKeyValueMap));
                tx.success();
}

no funciona, ya que la función Parámetros requiere un número par de argumentos. Ahora, no estoy seguro de cómo proceder. Obviamente, el objeto Map también se generaría dinámicamente (acabo de usar un ejemplo simplificado).

Cualquier ayuda / consejos serán muy apreciados!

Respuesta 1

Desea pasar el parámetro Map directamente al método de ejecución (como segundo parámetro), en lugar de confiar en la interfaz de valores de Neo4j. No es necesario convertir el objeto Map en el objeto Values.

Respuesta: 2

¿Cómo configuro el color de un evento que agrego mediante programación al calendario nativo de Android?

¿Qué estoy haciendo mal que no puedo importar org.springframework.jdbc y MUCHOS otros paquetes cuando pongo este artefacto en mi archivo pom.xml? <dependencia> <groupId> org.springframework & ...

He estado revisando los tutoriales de Beam KafkaIO y he estado tratando de encontrar documentación sobre la autenticación del cliente kafka, pero hasta ahora solo he encontrado ejemplos muy básicos. Necesito proporcionar el ...

He hecho una pequeña aplicación de red C ++. Produce los intercambios de paquetes en un archivo. La salida se ve así: De ... a ... mensaje 1 2 "hola" 2 3 "hola" 3 2 "hola atrás" 2 1 "hola atrás" Entonces, el primer campo ...