gpt4 book ai didi

java - 将 Intellij 与 Spring-Data-Neo4j/w Aspectj 一起使用会在尝试创建 Repos 时出现 Java 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:05 25 4
gpt4 key购买 nike

我正在使用 Intellij v13 编写 Spring-Data(使用 AspectJ + Neo4j)。如果我有以下服务文件:

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class BaseClassRepositoryImpl implements BaseClassRepository{
}

public interface BaseClassRepository extends BaseClassRepositoryCustom, GraphRepository<BaseClass> {

}

使用 example ,上面的代码应该可以工作。但是,Intellij 给了我一个异常(exception):

java: local.ffxiv.repos.BaseClassRepositoryImpl is not abstract and does not override     abstract method findByName(java.lang.String) in local.ffxiv.repos.BaseClassRepository

我到处搜索试图找出 Intellij 这样做的原因。还有其他人看到这个吗?

这也是 build.gradle 脚本:

project.ext {
sourceCompatibility = "1.7"
targetCompatibility = "1.6"
springDataGraphVersion = "2.3.0.RC1"
springVersion = "4.0.0.RELEASE"
junitVersion = "4.11"
neo4jVersion = "2.0.0"
aspectjVersion = "1.7"
}
apply from: 'http://github.com/SpringSource/spring-data-neo4j/raw/master/build/gradle/springdataneo4j.gradle'

configurations {
runtime
testCompile
}

buildscript {
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:0.5.0.M7")
}
repositories {
maven { url "http://repo.spring.io/milestone" }
mavenCentral()
}
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
baseName = 'ffxiv_db'
version = '0.1.0'
}
repositories {
mavenLocal()
mavenCentral()
maven { url "http://repo.spring.io/libs-milestone" }
maven { url "http://repo.spring.io/milestone" }
maven { url "http://m2.neo4j.org" }
}

dependencies {

// compile list
compile "org.springframework.boot:spring-boot-starter:0.5.0.M7"
compile "org.springframework.data:spring-data-neo4j:$springDataGraphVersion"
compile "org.springframework.data:spring-data-neo4j-aspects:$springDataGraphVersion"
compile "org.neo4j:neo4j:$neo4jVersion"
compile "javax.validation:validation-api:1.0.0.GA"
compile "org.springframework:spring-aspects:$springVersion"

// Test dependencies
testCompile "org.springframework:spring-test:$springVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.neo4j:neo4j-kernel:$neo4jVersion:tests"
}

task wrapper(type: Wrapper) {
gradleVersion = '1.10'
}

IntelliJ Screenshot of pop-up message

它要求我实现 exists(Long),我不需要这样做,但 IntelliJ 一直告诉我。如果我按 Alt+Enter,在弹出消息中,我可以点击“实现方法”,它会创建一大堆具有空返回值的覆盖。但是,根据文档,它应该通过函数名称推断出我想做什么,并推导出函数对简单 CRUD 操作的作用。 IE。对于“findByName”应该返回一个名为“Name”的属性,它会创建适当的函数。

最佳答案

异常消息非常清楚:local.ffxiv.repos.BaseClassRepositoryImpl 类应该声明为抽象类或必须实现 findByName(java.lang.String) local.ffxiv.repos.BaseClassRepository 的方法(它扩展了 BaseClassRepositoryCustom,我猜是声明了 findByName)。

与您引用的示例进行比较:WorldRepositoryImpl 实现了 MyWorldRepository 并覆盖了它的所有方法。

UPD

并且您的 BaseClassRepositoryImpl 可能应该实现 BaseClassRepositoryCustom 而不是 BaseClassRepository。然后,您将只需要覆盖 BaseClassRepositoryCustom 的方法,而不是整个 GraphRepository

关于java - 将 Intellij 与 Spring-Data-Neo4j/w Aspectj 一起使用会在尝试创建 Repos 时出现 Java 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298753/

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