【问题标题】:JpaRepository and CrudRepository errorJpaRepository 和 CrudRepository 错误
【发布时间】:2017-01-02 18:18:52
【问题描述】:

为什么会出现这样的错误? 我正在使用 Spring Data JPA 1.3.3、Spring 4.2.8 和 Spring MVC 4.2.8。

更新: 错误代码块

错误:错误:行(8)java:名称冲突:org.springframework.data.jpa.repository.JpaRepository 中的保存(java.lang.Iterable)和 org.springframework 中的保存(java.lang.Iterable)。 data.repository.CrudRepository 具有相同的擦除,但都不会覆盖另一个

我所有的库都添加为 IntelliJ Idea 的模块。 Maven 只下载 JSTL。

【问题讨论】:

  • 请将错误添加为代码块而不是图像,因为它们变得不可读。
  • 这可能是由于依赖冲突。检查您的依赖版本或将其添加到问题中。
  • 也去掉@Query,你不需要它。
  • @M.Deinum 我将错误添加为代码块
  • 升级你的 spring 版本到 4.3.5.RELEASE 和 JPA 到 1.10.6.RELEASE

标签: spring intellij-idea spring-data-jpa


【解决方案1】:

看来你有依赖问题。 Spring Data JPA 的旧版本 Spring Data Common 可能是问题所在。

【讨论】:

  • 我使用 Spring Data JPA 1.3.3 和 Spring Data Commons Core 1.1.0。这就是错误的原因?
【解决方案2】:

对于 spring data jpa,在 repo 中编写原生查询并不是一个好主意。除非您的要求只是难以编写查询方法。

对于您的情况,您只需要像这样的简单查询方法

List<User> findByFirstName(String firstName);

返回用户列表,因为许多用户可能具有相同的用户名

看看spring数据文档Query methods

希望对你有帮助:)

【讨论】:

  • 哦,好的!但是您的问题是因为 spring 混淆了本机和方法查询。您可能想通过重命名您的方法或将nativeQuery = true 添加到您的本机查询参数来澄清使用哪一个
【解决方案3】:

对于那些面临 Ignite Spring Data 和 Spring JPA 依赖问题的人 - 您需要将 org.springframework.data:spring-data-jpa 版本降级到 1.11.23.RELEASE。感谢@chirdeep-tomar comment

在我的项目中IgniteRepositoryCrudRepositorydeleteAll() 方法的兼容性问题通过以下Maven 配置得到解决:

    'org.springframework:spring-core:5.2.3.RELEASE'
    'org.springframework.data:spring-data-jpa:1.11.23.RELEASE'
    'org.apache.ignite:ignite-spring-data:2.9.0'
    'org.apache.ignite:ignite-core:2.9.0'
    'org.apache.ignite:ignite-spring:2.9.0'

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 2016-01-18
    • 2015-07-21
    • 1970-01-01
    • 2019-05-08
    • 2012-12-10
    • 2014-07-01
    • 2017-08-25
    相关资源
    最近更新 更多