JPA报错:Correct the classpath of your application so that it contains a single

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.data.jpa.repository.query.JpaQueryMethod.potentiallyUnwrapReturnTypeFor(JpaQueryMethod.java:144)

The following method did not exist:

    org.springframework.data.repository.core.RepositoryMetadata.getReturnType(Ljava/lang/reflect/Method;)Lorg/springframework/data/util/TypeInformation;

The method's class, org.springframework.data.repository.core.RepositoryMetadata, is available from the following locations:

    jar:file:/C:/Users/sqgwq/.m2/repository/org/springframework/data/spring-data-commons/2.3.0.RELEASE/spring-data-commons-2.3.0.RELEASE.jar!/org/springframework/data/repository/core/RepositoryMetadata.class

It was loaded from the following location:

    file:/C:/Users/sqgwq/.m2/repository/org/springframework/data/spring-data-commons/2.3.0.RELEASE/spring-data-commons-2.3.0.RELEASE.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.repository.core.RepositoryMetadata


Process finished with exit code 1

controller层

service层
2

repository

List showByOrderNum(String orderNum);

只要是在 repository 里面写东西就报这个错

···
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.boot</groupId>
    <artifactId>start</artifactId>
    <version>1.0.0</version>
    <name>boot-jpa-starter</name>
    <description>Springboot+Jpa快速开始</description>

    <properties>
        <java.version>1.8</java.version>
        <commons-io.version>2.6</commons-io.version>
        <commons-collections4.version>4.4</commons-collections4.version>
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <h2.version>1.4.197</h2.version>
        <swagger.version>2.6.1</swagger.version>

    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.20</version>
        </dependency>

        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.60</version>
        </dependency>

        <!--log4j2异步输出的依赖包 -->
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.3.6</version>
        </dependency>
        <!-- Add Log4j2 Dependency -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <!-- apache 工具类 -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>
        <!-- 集合操作 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${commons-collections4.version}</version>
        </dependency>
        <!-- 反射操作 -->
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>${commons-beanutils.version}</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>


            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <!--连接数据库-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>2.4.8</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources/java</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
<!--            liquibase-->
<!--            <plugin>-->
<!--                <groupId>org.liquibase</groupId>-->
<!--                <artifactId>liquibase-maven-plugin</artifactId>-->
<!--                <version>3.4.2</version>-->
<!--                <configuration>-->
<!--                    <propertyFileWillOverride>true</propertyFileWillOverride>-->
<!--                    <propertyFile>src/main/resources/liquibase/liquibase.properties</propertyFile>-->
<!--                    <propertyFileWillOverride>true</propertyFileWillOverride>-->
<!--                    <outputChangeLogFile>src/main/resources/liquibase/changelog_dev.xml</outputChangeLogFile>-->
<!--                    <diffChangeLogFile>src/main/resources/liquibase/changelog_dev.xml</diffChangeLogFile>-->
<!--                </configuration>-->
<!--                <executions>-->
<!--                    <execution>-->
<!--                        <phase>process-resources</phase>-->
<!--                        <goals>-->
<!--                            <goal>update</goal>-->
<!--                        </goals>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--                <dependencies>-->
<!--                    <dependency>-->
<!--                        <groupId>mysql</groupId>-->
<!--                        <artifactId>mysql-connector-java</artifactId>-->
<!--                        <version>8.0.20</version>-->
<!--&lt;!&ndash;                        <groupId>com.h2database</groupId>&ndash;&gt;-->
<!--&lt;!&ndash;                        <artifactId>h2</artifactId>&ndash;&gt;-->
<!--&lt;!&ndash;                        <version>1.4.200</version>&ndash;&gt;-->
<!--                    </dependency>-->
<!--                </dependencies>-->
<!--            </plugin>-->
        </plugins>
    </build>

</project>

···

好像是冲突导致的问题,你怎么用JPA的?

康康你的pom.xml文件

1 个赞

jar包有冲突吧 检查下

1 个赞

2个 jpa pom都删了一遍试过了,还是不行

2个 jpa pom都删了一遍试过了,还是不行啊啊啊

2个 jpa pom都删了一遍试过了,还是不行1111111

贴出来 看一看
用markdown的
```
包裹,方便阅读

最好把你工程放到Github/Gitee上,把源码放出来。不然靠你这几句话,难以知道问题所在。

把这个依赖删除

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>2.4.8</version>
        </dependency>

添加这个依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

试试看

我把 repository 和 service 删了
居然可以了
什么鬼?
不用写repository 和 service ?

应该是你这个showBy的问题,jpa不支持,要使用findBy

改了,之前就是findBy

那就试试 @KevinBlandy 在上面给出的方案

111111111111

看了你的工程,修改几个地方

1,删除依赖

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>2.4.8</version>
        </dependency>

2,添加依赖

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

3,main方法添加注解

你没有添加 @EnableJpaRepositories这个注解

@EnableJpaRepositories(basePackages = { "com.toy.start.repository" })		// 开启JPA,指定Repository的包
@EnableJpaAuditing
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class BootJpaStarterApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootJpaStarterApplication.class, args);
    }

}

4,修改DesignRepository的查询语句

默认@Query用的是HQL,HQL不能用 * 会异常。

@Query(value =
        "SELECT * from  order  left join design on order.design_id = design.id WHERE order.order_num = ?1")
    List<Tuple> findByOrderNum(String orderNum);

原生查询,需要把nativeQuery设置为 true

@Query(value =
        "SELECT * from  order  left join design on order.design_id = design.id WHERE order.order_num = ?1", nativeQuery = true)
    List<Tuple> findByOrderNum(String orderNum);