una relaciones modificar instalar datos crear como borrar neo4j spring-data-neo4j

relaciones - manual neo4j



No se puede agregar más de una relación entre nodos en neo4j (1)

Esto no es una deficiencia de Neo4j, es una restricción de Spring Data Neo4j.

Por lo general, si tiene diferentes tipos de relaciones, tendría sentido elegir también diferentes tipos de relación, y no usar una propiedad de relación para esto.

CONNECTED_TO también es bastante genérico.

Id también es una clase bastante genérica, ¿no debería ser User o algo similar?

FRIEND COLLEAGUE etc. sería más significativo.

Dicho esto, si quieres permanecer en tu modelo, puedes usar

template.createRelationshipBetween(entity1,entity2,type,properties,true)

Lo true significa permitir-duplicar.

Alternativamente, use dos tipos de objetivos diferentes para los 2 tipos de relaciones y uso

@RelatedTo(enforceTargetType=true)

Estoy tratando de modelar una red social con Neo4J. Esto requiere que un usuario pueda tener relaciones múltiples con otro usuario. Cuando trato de persistir en estas relaciones, solo se almacena una. Por ejemplo, esta es la unidad de prueba que hago:

@Test public void testFindConnections() { Id id1 = new Id(); id1.setId("first-node"); Id id2 = new Id(); id2.setId("second-node"); idService.save(id2); id1.connectedTo(id2, "first-rel"); id1.connectedTo(id2, "second-rel"); idService.save(id1); for (Id im : idService.findAll()) { System.out.println("-" + im.getId()); if (im.getConnections().size() > 0) { for (ConnectionType ite : im.getConnections()) { System.out .println("--" + ite.getId() + " " + ite.getType()); } } } }

Esto debería dar como resultado:

-first-node --0 first-rel --1 second-rel -second-node --0 first-rel --1 second-rel

Sin embargo, produce:

-first-node --0 first-rel -second-node --0 first-rel

Esta es mi entidad de nodo:

@NodeEntity public class Id { @GraphId Long nodeId; @Indexed(unique = false) String id; @Fetch @RelatedToVia(direction=Direction.BOTH) Collection<ConnectionType> connections = new HashSet<ConnectionType>(); }

Y mi entidad de relación:

@RelationshipEntity(type = "CONNECTED_TO") public class ConnectionType { @GraphId Long id; @StartNode Id fromUser; @EndNode Id toUser; String type; }

¿Cuál podría ser el problema? ¿Hay alguna otra manera de modelar varias relaciones entre nodos?