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

我有一个Neo4j/OGM实体
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类
  • 如果需要更多动态标签,则该类可以包含要应用的标签的带注释列表。有关更多详细信息,请参阅

关于属性,我不认为这有什么用处。我很想听听用例。

谢谢你的回答,但我没有描述的问题与你所理解的不同:-)为了更好地理解,我添加了一个更详细的示例