当前位置: 首页 > 知识库问答 >
问题:

Spring data neo4j:不存在主SDN标签...(即以_开头的标签)

史骏祥
2023-03-14

尝试在UserRepository扩展GraphRespository上执行以下方法

@Query(
    "MERGE (user:User {appId:{0}, uid:{1}})" +
    "RETURN user"
)
public User createUserIfNotExists(String appId, String userId);

例外:

java.lang.IllegalStateException: No primary SDN label exists .. (i.e one with starting with _) 
at org.springframework.data.neo4j.support.typerepresentation.LabelBasedNodeTypeRepresentationStrategy.readAliasFrom(LabelBasedNodeTypeRepresentationStrategy.java:125)
at org.springframework.data.neo4j.support.typerepresentation.LabelBasedNodeTypeRepresentationStrategy.readAliasFrom(LabelBasedNodeTypeRepresentationStrategy.java:42)

但是,将查询更改为“合并”(用户:_user工作,并将标签_user应用于创建的节点。

Q1.我可以告诉SDN只附加User作为标签,并避免_User
Q2。如果没有,那么我如何将User_User标签附加到所有用户节点。目前只附加了_User标签


编辑:

问题1:

在我以前的SDN版本(即3.0.0.RELEASE)中,突然查询user:user:\u user开始工作,但在类似查询的Song:Song:\u Song存储库中失败,但适用于Song:\u SongSong:Song

问题2:

当我更新我的SDN或Neo4j版本时,我得到了奇怪的异常,这就是为什么我没有更新我的SDN和Neo4j版本。

刚才我将SDN更新为3.1版。1并保持neo4j版本相同(即2.0.1),代码也相同,但我得到了以下例外

Exception in thread "main" java.lang.IllegalArgumentException: Environment must not be null!
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.<init>(RepositoryConfigurationSourceSupport.java:50)
at org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>(AnnotationRepositoryConfigurationSource.java:74)
at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:74)
at org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:396)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:207)

在第行ApplicationContext appCtx=new AnnotationConfigApplicationContext(ApplicationConfig.class)


共有1个答案

左丘元徽
2023-03-14

它需要带下划线的标签来标识实际属于该类的标签(在继承层次结构中)。

迈克尔

使用:

MERGE (user:User:_User {appId:{0}, uid:{1}})
RETURN user

MERGE (user:User {appId:{0}, uid:{1}})
ON CREATE SET user:_User
RETURN user
 类似资料:
  • Spring data neo4j版本:3.3.0。发布Neo4j版本:2.2.2 当我试图查询在Spring数据存储库中公开的默认方法时,我遇到了以下异常。 造成原因:java.lang.IllegalState异常:没有主SDN标签存在...(即一个以_开始)在org.springframework.data.neo4j.support.typerepresentation.LabelBase

  • 我正在尝试使用SDN3.0创建节点。2和Neo4j 2.0。1. 我是这样做的: 以这种方式执行,我得到for the

  • 在问这个问题之前,我提到了这个问题,但尽管看起来很相似,但这个问题并没有包含我的问题的答案。 我开发了Springboot项目,并在本地机器上创建了名为的docker映像。因此,当我运行时,它会列出我在本地拥有的所有图像, 然后我参考了这些文档,将我的docker图像拉到dockerhub中。所以我给图像加了标签,然后按照命令按下按钮, 但结果是一个错误, 推送引用存储库[docker.io/se

  • 问题内容: 谁能告诉我如何使用webdriver关闭除第一个标签/主标签之外的所有打开的标签? 我在下面尝试过,但是它同时关闭了所有标签,包括第一个标签。 请帮我。 问题答案: 获取所有窗口句柄,然后遍历它们,将webdriver切换到新的句柄,然后调用close方法。显然跳过原始手柄,然后切换回其余手柄。 就像是;

  • 问题内容: 我需要匹配所有这些开始标签: 但不是这些: 我想出了这个,想确保我做对了。我只是捕捉到。 我相信它说: 找到一个小于,然后 查找(并捕获)az一次或多次,然后 找到零个或多个空格,然后 找到零次或多次贪婪的字符,除了,然后 寻找大于 我有那个权利吗?更重要的是,您怎么看? 问题答案: 尽管只有正则表达式的任意 HTML是不可能的,但有时使用它们来解析有限的已知 HTML集合是适当的。

  • 我相信预览功能不包括这一点。我只想通过快速打开(或任何方式?)打开一个文件进行编辑,并替换活动选项卡的内容,关闭打开的文件并用新文件替换它。 这种行为对我的编辑方式至关重要。目前,我总是打开我不想要的新标签。这是代码和我15年来使用Vim的方式之间唯一的障碍。我想这是可以写成剧本的,但我希望避免走这条路。请告诉我我错过了什么。