【发布时间】:2014-08-05 10:36:56
【问题描述】:
在grails-neo4j插件中,如何定义节点之间的关系和关系的属性。
我可以将我的节点定义为域类,但如果我想连接节点,即我想以某种形式映射节点的关系。
我发现 spring-neo4j 框架非常适合这种情况,我可以将关系映射到 java 类,但没有找到任何 grails 兼容层。
【问题讨论】:
在grails-neo4j插件中,如何定义节点之间的关系和关系的属性。
我可以将我的节点定义为域类,但如果我想连接节点,即我想以某种形式映射节点的关系。
我发现 spring-neo4j 框架非常适合这种情况,我可以将关系映射到 java 类,但没有找到任何 grails 兼容层。
【问题讨论】:
插件不会将域类直接映射到 neo4j 中的节点或关系。它使用自己的结构,例如:
root -> domainClass.name -> relation -> domain class instance
我建议将您的域类定义为节点,并且插件应该正确处理它们。另一种方式:放弃插件>)
【讨论】:
GMongo for mongo-db
Neo4j Grails 插件尚不支持将域类映射为关系。我的清单上有这个要添加的东西。
没错,Spring Data Neo4j 已经能够做到这一点。请注意,Spring Data Neo4j 和 Grails Neo4j 插件没有任何共同之处(除了它们使用 Neo4j 来持久化)。持久层是一个完全独立的代码库。
【讨论】:
现在比最初提出这个问题时要晚得多 - 4 年后。该插件现在支持将 Neo4j 关系创建为 Grails 域类,并且该关系可以具有属性。但是,对这些属性的约束还不起作用。以下是有效的单向关系的完整代码。
package neo4j.authentication.demo
import grails.neo4j.Relationship
import groovy.transform.CompileStatic
@CompileStatic
class BelongsTo implements Relationship<Car, Owner> {
String sinceWhen
String toString() {
sinceWhen
}
}
【讨论】: