Je reçois RuntimeException
lors de l'appel Neo4jTemplate.getOrCreateRelationship()
méthode et passer dans les propriétés qui contient un ArrayList
.Spring Data La méthode Neo4jTemplate.getOrCreateRelationship() ne prend pas en charge la propriété de type tableau.
java.lang.RuntimeException: Error retrieving or creating relationship for key testKey and value 999 with index TestRelIndex
Voici mon code:
Map<String, Object> relProperties = new HashMap<String, Object>();
List<String> tags = new ArrayList<String>();
tags.add("tag1");
tags.add("tag2");
relProperties.put("tags", tags);
Relationship rel = template.getOrCreateRelationship("TestRelIndex", "testKey", 999, userNode, itemNode, "shortlist", relProperties);
Le message d'exception n'est pas descriptive. Après un débogage, j'ai réussi à obtenir le message d'erreur suivant de la méthode org.neo4j.rest.graphdb.ExecutingResAPI.getOrCreateRelationship()
où l'exception RuntimeException est levée.
{"message":"Unknown property type on: [tag1, tag2], class java.util.ArrayList","exception":"IllegalArgumentException","fullname":"java.lang.IllegalArgumentException","stacktrace":["org.neo4j.kernel.impl.nioneo.store.PropertyStore.encodeValue(PropertyStore.java:582)","org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relAddProperty(WriteTransaction.java:1210)","org.neo4j.kernel.impl.persistence.PersistenceManager.relAddProperty(PersistenceManager.java:176)","org.neo4j.kernel.impl.core.NodeManager.relAddProperty(NodeManager.java:1156)","org.neo4j.kernel.impl.core.RelationshipImpl.addProperty(RelationshipImpl.java:69)","org.neo4j.kernel.impl.core.Primitive.setProperty(Primitive.java:436)","org.neo4j.kernel.impl.core.RelationshipImpl.setProperty(RelationshipImpl.java:29)","org.neo4j.kernel.impl.core.RelationshipProxy.setProperty(RelationshipProxy.java:129)","org.neo4j.server.rest.web.DatabaseActions$UniqueRelationshipFactory.initialize(DatabaseActions.java:1058)","org.neo4j.server.rest.web.DatabaseActions$UniqueRelationshipFactory.initialize(DatabaseActions.java:1033)","org.neo4j.graphdb.index.UniqueFactory.getOrCreateWithOutcome(UniqueFactory.java:241)","org.neo4j.server.rest.web.DatabaseActions.getOrCreateIndexedRelationship(DatabaseActions.java:1018)","org.neo4j.server.rest.web.RestfulGraphDatabase.addToRelationshipIndex(RestfulGraphDatabase.java:871)","java.lang.reflect.Method.invoke(Method.java:601)","org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)"]}
J'ai essayé de créer la même relation avec Neo4jTemplate.createRelationshipBetween()
et il fonctionne très bien. Cela signifie-t-il que Neo4jTemplate.getOrCreateRelationship()
ne prend pas encore en charge la propriété de type tableau?