我刚刚将我的项目升级到Spring Boot 2并且现在使用我的一个JpaRepositories收到此错误:
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type UserOrder
我的UserOrderRepository看起来像这样:
@Repository
public interface UserOrderRepository extends JpaRepository<UserOrder, String> {
}
我的代码绝对没有使用findAll
这个词。不是作为一种财产,不作为一种方法,所以完全不知道为什么我会收到这个错误。
该项目使用Spring框架spring-data-couchbase工件写入Couchbase。
运行命令行mvn dependency:tree | grep -i spring给出:
[INFO] | \- org.springframework.data:spring-data-couchbase:jar:3.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:5.0.5.RELEASE:compile
[INFO] | | \- org.springframework:spring-expression:jar:5.0.5.RELEASE:compile
[INFO] | +- org.springframework:spring-web:jar:5.0.5.RELEASE:compile
[INFO] | +- org.springframework:spring-tx:jar:5.0.5.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-commons:jar:2.0.6.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-properties-migrator:jar:2.0.1.RELEASE:runtime
[INFO] | +- org.springframework.boot:spring-boot:jar:2.0.1.RELEASE:compile
[INFO] | \- org.springframework.boot:spring-boot-configuration-metadata:jar:2.0.1.RELEASE:runtime
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:5.0.5.RELEASE:compile
[INFO] | | \- org.springframework:spring-jcl:jar:5.0.5.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-aop:jar:2.0.1.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.0.5.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.0.1.RELEASE:compile
[INFO] | | \- org.springframework:spring-jdbc:jar:5.0.5.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-jpa:jar:2.0.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-orm:jar:5.0.5.RELEASE:compile
[INFO] | | \- org.springframework:spring-beans:jar:5.0.5.RELEASE:compile
[INFO] | \- org.springframework:spring-aspects:jar:5.0.5.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.0.1.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test:jar:2.0.1.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.0.1.RELEASE:test
[INFO] | +- org.springframework:spring-test:jar:5.0.5.RELEASE:test
答案 0 :(得分:0)
我过去也遇到过这个问题。我不记得究竟是什么问题,但它与存储库方法的返回类型有关。从我们在其中一个方法中的自定义JPARepository,我们返回DTO而不是ENTITY对象。
答案 1 :(得分:0)
花了几天时间,我无法弄清楚为什么我会收到这个错误。我能够通过更改注释掉的代码来解决它,以便一次保存一个。这也可能是与Spring Couchbase数据项目相关的特定问题。
public boolean upsertUserOrders(Set<UserOrder> userOrderSet) {
//userOrderRepository.save(userOrderSet);
userOrderSet.forEach(uo -> userOrderRepository.save(uo));
}
我知道这不是主意,但我想我会发布我的解决方案(直到找到真正的解决方案)以防其他人遇到此问题。