J'ai commencé à utiliser Neo4j-ogm dans mon application et cela fonctionne comme un charme pour un modèle de domaine d'objet fixe. Quand je sais quel type de nœud est connecté à un autre nœud avec un type connu, il peut facilement être mappé. Cependant, à mon avis la versitalité de la base de données graphique Neo4j est également dans une capacité à travailler avec des modèles de domaine non typés (ou dynamiques) et j'ai un problème conceptuel pour comprendre comment l'obtenir avec Neo4j-ogm. Permettez-moi de décrire mon problème avec un exemple.Neo4j-Ogm pour le modèle d'objet de domaine dynamique
J'ai des objets de domaine comme: Message et fonctionnalité. Où Message peut avoir plusieurs fonctionnalités et une fonctionnalité peut faire partie de plusieurs messages. Il est complètement ok à la carte avec Neo4j-ogm.
Alors, que se passe-t-il si l'utilisateur souhaite associer le message à un type de nœud Tâche ou le renvoyer à un type de nœud Contact? Dans mon application, il est possible d'avoir un grand ensemble (mais limité) de connexion entre des nœuds de différents types. Donc, je voudrais pouvoir obtenir tous les types de connexions à partir d'un nœud particulier, indépendamment de ces types de connexion ou types endNode?
Bien sûr, je peux utiliser Cypher pour créer des connexions comme ceci:
MATCH ($2911) WHERE id($2911)={$2911} MATCH ($2912) WHERE id($2912)={$2912} MERGE ($2911)-[_0:`part_of` {$aid} ]->($2912) RETURN id(_0) AS _0
mais quand je commence à faire cela - je besoin d'un moyen comment convertir les résultats de cette requêtes et à des entités relationnelles moi-même .
Existe-t-il une manière élégante de le faire en utilisant Neo4j-ogm. Peut être qu'il est possible de créer une hiérarchie de type comprehansive ou quelque chose qui permettra d'utiliser Neo4j-ogm ensemble pour des modèles d'objets de domaine fixes et dynamiques.
Merci d'avance.
Merci pour votre réponse. Néanmoins j'ai décidé de rester avec Neo4j-ogm comme c'est une très belle bibliothèque et beaucoup plus avancé que l'outil de mien pour accéder à Neo4j. Afin de résoudre mon problème avec le domaine fixe, je prévois d'utiliser des requêtes Cypher pour obtenir des connexions non mappées à partir de n'importe quel nœud. – Vladimir