我已经开始在我的应用程序中使用Neo4j-ogm,它的工作方式类似于固定对象域模型。当我知道哪个节点类型用已知类型连接到另一个节点时,它可以很容易地被映射。然而,在我看来,Neo4j图形数据库的多样性也是一种处理非类型(或动态)域模型的能力,我在概念上有问题来理解如何使用Neo4j-ogm来实现它。
让我用一个例子来描述我的问题。
我有像:消息和功能这样的域对象。其中,消息可以具有多个特性,而一个功能可以是许多消息的一部分。完全可以用Neo4j-ogm绘制地图。
那么,如果用户希望将消息关联到某个Task节点类型或将其引用到某些联系人节点类型,怎么办?在我的应用程序中,可以在各种类型的节点之间建立一组大型(但有限的)连接。因此,我希望能够从特定节点获取所有类型的连接,而不管这种连接类型还是endNode类型?
当然,我可以使用密码创建这样的连接:
MATCH ($2911) WHERE id($2911)={$2911} MATCH ($2912) WHERE id($2912)={$2912} MERGE ($2911)-[_0:`part_of` {$aid} ]->($2912) RETURN id(_0) AS _0但是,当我开始这样做的时候--我需要一种方法来将这个查询的结果转换成关系实体。
是否有一种优雅的方式来使用Neo4j-ogm来完成这一任务。也许可以创建一个综合类型的传家宝,或者允许将Neo4j-ogm一起用于固定和动态域对象模型的东西。
提前谢谢你。
发布于 2015-11-28 08:53:49
Neo4j OGM支持固定类型层次结构,因此如果您能够在这样的层次结构中表示您的域,您应该能够从单个实体中获取所有连接。这意味着结束节点也必须在此层次结构中表示。
运行时多态在当前版本中不受支持--尽管这是值得讨论的,因此取决于它的运行方式,它可能会成为未来的版本。
https://stackoverflow.com/questions/33956078
复制相似问题