gpt4 book ai didi

neo4j - 从 SDN 4.0 迁移到 SDN 4.1.RC1 时出现 GraphQueryLookupStrategy.resolveQuery 异常

转载 作者:行者123 更新时间:2023-12-02 06:53:43 26 4
gpt4 key购买 nike

我正在迁移我的应用程序以使用 SDN 4.1.0.RC1,但在尝试启动应用程序后遇到了一些问题。我已经进行了必要的配置更改,以便正确地将 HTTPDriver 用于我的远程服务器 (localhost:7474),并且在启动应用程序时,我在尝试加载 spring 上下文时,我的一个存储库出现以下错误。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.springframework.data.neo4j.repository.query.GraphQueryLookupStrategy.resolveQuery(Ljava/lang/reflect/Method;Lorg/springframework/data/repository/core/RepositoryMetadata;Lorg/springframework/data/repository/core/NamedQueries;)Lorg/springframework/data/repository/query/RepositoryQuery;
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
... 32 common frames omitted
Caused by: java.lang.AbstractMethodError: org.springframework.data.neo4j.repository.query.GraphQueryLookupStrategy.resolveQuery(Ljava/lang/reflect/Method;Lorg/springframework/data/repository/core/RepositoryMetadata;Lorg/springframework/data/repository/core/NamedQueries;)Lorg/springframework/data/repository/query/RepositoryQuery;
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:416)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:206)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:251)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:237)
at org.springframework.data.neo4j.repository.support.GraphRepositoryFactoryBean.afterPropertiesSet(GraphRepositoryFactoryBean.java:43)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
... 42 common frames omitted

这就是好像要哭的vanilia仓库

@Repository
public interface UserRepository extends GraphRepository<User> {

@Query("MATCH (u:User) where u.authId = {authId} return u limit 1")
User findOneByAuthId(@Param("authId") Long authId);

}

编辑

看起来可能是spring data和spring data neo4j的版本脱节了。

有问题的 GraphQueryLookupStrategy...

/*
* Copyright (c) [2011-2016] "Pivotal Software, Inc." / "Neo Technology" / "Graph Aware Ltd."
*
* This product is licensed to you under the Apache License, Version 2.0 (the "License").
* You may not use this product except in compliance with the License.
*
* This product may include a number of subcomponents with
* separate copyright notices and license terms. Your use of the source
* code for these subcomponents is subject to the terms and
* conditions of the subcomponent's license, as noted in the LICENSE file.
*
*/

package org.springframework.data.neo4j.repository.query;

import org.neo4j.ogm.session.Session;
import org.springframework.data.projection.ProjectionFactory;
import org.springframework.data.repository.core.NamedQueries;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.RepositoryQuery;

import java.lang.reflect.Method;

/**
* @author Mark Angrish
* @author Luanne Misquitta
* @author Oliver Gierke
*/
public class GraphQueryLookupStrategy implements QueryLookupStrategy {

private final Session session;

public GraphQueryLookupStrategy(Session session) {
this.session = session;
}

/*
* (non-Javadoc)
* @see org.springframework.data.repository.query.QueryLookupStrategy#resolveQuery(java.lang.reflect.Method, org.springframework.data.repository.core.RepositoryMetadata, org.springframework.data.projection.ProjectionFactory, org.springframework.data.repository.core.NamedQueries)
*/
@Override
public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, ProjectionFactory factory,
NamedQueries namedQueries) {
return new GraphQueryMethod(method, metadata, factory, session).createQuery();
}
}

看来我拥有的 QueryLookupStrategy 期待一个方法 RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, NamedQueries namedQueries); 被实现,但显然不是。我认为这现在是一个依赖性问题,并将进一步调查我需要与 SDN 兼容的 Spring Data 版本

/*
* Copyright 2008-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.repository.query;

import java.lang.reflect.Method;
import java.util.Locale;

import org.springframework.data.repository.core.NamedQueries;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.util.StringUtils;

/**
* Strategy interface for which way to lookup {@link RepositoryQuery}s.
*
* @author Oliver Gierke
*/
public interface QueryLookupStrategy {

public static enum Key {

CREATE, USE_DECLARED_QUERY, CREATE_IF_NOT_FOUND;

/**
* Returns a strategy key from the given XML value.
*
* @param xml
* @return a strategy key from the given XML value
*/
public static Key create(String xml) {

if (!StringUtils.hasText(xml)) {
return null;
}

return valueOf(xml.toUpperCase(Locale.US).replace("-", "_"));
}
}

/**
* Resolves a {@link RepositoryQuery} from the given {@link QueryMethod} that can be executed afterwards.
*
* @param method
* @param metadata
* @param namedQueries
* @return
*/
RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, NamedQueries namedQueries);
}

最佳答案

好的,所以如果您遇到这个问题,有一种非常直接的方法可以解决它。请参阅 http://projects.spring.io/spring-data/ 处的文档.该异常是与spring data commons模块版本冲突导致的。 neo4j在4.1.0.RC1版本实现的接口(interface)发生变化,抛出该异常。

要解决,请使用 Spring Data 发布火车 BOM 并将其设置为发布 Hopper-RC1 。由于我使用的是 gradle,所以说明如下,但您也可以在上面的链接中找到它们。

相关构建脚本简化...

buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:0.4.0.RELEASE"
}
}

apply plugin: "io.spring.dependency-management"

dependencyManagement {
imports {
mavenBom 'org.springframework.data:spring-data-releasetrain:Hopper-RC1'
}
}

dependencies {
compile 'org.springframework.data:spring-data-neo4j:4.1.0.RC1'
}repositories {
maven {
url 'https://repo.spring.io/libs-milestone'
}
}

干杯,

史蒂夫

关于neo4j - 从 SDN 4.0 迁移到 SDN 4.1.RC1 时出现 GraphQueryLookupStrategy.resolveQuery 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36407803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com