Neo4j 使用自定义标签的OGM自定义查询
我有一个Neo4j/OGM实体Neo4j 使用自定义标签的OGM自定义查询,neo4j,label,neo4j-ogm,Neo4j,Label,Neo4j Ogm,我有一个Neo4j/OGM实体Person,我使用它映射到标签User @NodeEntity(label=“User)。 我现在想编写一个自定义查询匹配(p:Person),其中…。 在我看来,没有办法使用我的应用程序端类型Person来代替Hibernate中的图形端标签User,对吗? 如果有办法的话,请解释如何做到这一点,或者告诉我的一个关键字谷歌。 同样的问题也适用于实体属性 多谢各位 更新: 假设我有这样一个用户类: @NodeEntity(label="Person") class
Person
,我使用它映射到标签User
@NodeEntity(label=“User)
。
我现在想编写一个自定义查询匹配(p:Person),其中…
。
在我看来,没有办法使用我的应用程序端类型Person
来代替Hibernate中的图形端标签User
,对吗?
如果有办法的话,请解释如何做到这一点,或者告诉我的一个关键字谷歌。
同样的问题也适用于实体属性
多谢各位
更新:
假设我有这样一个用户类:
@NodeEntity(label="Person")
class User {
@Property(name="username")
private String name;
...
}
我已经使用映射来获得松耦合,因此我可以重命名此人,并且不会影响Neo4j。
在Neo4j中,例如House
s与User
s有关系。
现在我想加载所有房屋,引用一个名为“Sven”的用户,因此语句应该是MATCH(h:House)-[:HOLDS]>(p:Person{username:'Sven'})
。
考虑到我可能有一个包含其他子模块中所有实体的巨大项目,我可能不知道,User
映射到Person
和用户。name
映射到username
,因此在Hibernate环境中,我将作为MATCH(h:House)-[:HOLDS]>(u:User{name:'Sven})进行查询
。但是在OGM中,这似乎不起作用。
也许有一种方法可以从架构上解决这个问题,但在某些项目中,您没有这样的选择
因此,最后的问题是:有没有办法让它发挥作用,或者我真的需要知道我使用的每个实体的映射吗?您可以通过几种方式来实现这一点:
- 使您的用户扩展Person类
- 如果需要更多动态标签,则该类可以包含要应用的标签的带注释列表。有关更多详细信息,请参阅
关于属性,我不认为这有什么用处。我很想听听用例。谢谢你的回答,但我没有描述的问题与你所理解的不同:-)为了更好地理解,我添加了一个更详细的示例