【问题标题】:spring data for mongo Caused by: java.lang.AbstractMethodErrormongo 的 spring 数据引起:java.lang.AbstractMethodError
【发布时间】:2014-08-26 06:33:31
【问题描述】:

我在 jpa 和 mongo 中使用 spring 数据。

依赖

spring 版本是 4.0.2.RELEASE

spring-data-jpa 版本为 1.4.3.RELEASE

spring-data-mongodb 版本为 1.2.0.RELEASE

xml配置

<context:component-scan base-package="develop" />

<jpa:repositories base-package="develop.erp"
        entity-manager-factory-ref="entityManagerFactory"
        transaction-manager-ref="transactionManager" /> 


<mongo:repositories base-package="develop.doc" />

型号

@Document
public class OrderItem extends AbstractDocument {


    enter code here
    @Id
    private BigInteger id;

    private Integer orderNumber;

    public get and set method ...
}

public interface IOrderItemDao extends PagingAndSortingRepository<OrderItem, BigInteger> {


    List<OrderItem> findByOrderNumber(Integer number);
}

例外

Caused by: java.lang.AbstractMethodError
    at org.springframework.data.repository.query.Parameters.getBindableParameters(Parameters.java:235)
    at org.springframework.data.repository.query.Parameters.assertEitherAllParamAnnotatedOrNone(Parameters.java:262)
    at org.springframework.data.repository.query.Parameters.<init>(Parameters.java:85)
    at org.springframework.data.mongodb.repository.query.MongoParameters.<init>(MongoParameters.java:47)
    at org.springframework.data.mongodb.repository.query.MongoQueryMethod.createParameters(MongoQueryMethod.java:76)
    at org.springframework.data.repository.query.QueryMethod.<init>(QueryMethod.java:70)
    at org.springframework.data.mongodb.repository.query.MongoQueryMethod.<init>(MongoQueryMethod.java:62)
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory$MongoQueryLookupStrategy.resolveQuery(MongoRepositoryFactory.java:119)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:304)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:161)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:162)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:44)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:144)

有人可以知道吗?

非常感谢..

【问题讨论】:

    标签: spring mongodb


    【解决方案1】:

    就我而言,我的项目中有 spring-data-solr(2.0.1) 和 spring-data-jpa(1.9.1)。我注意到 SolrQueryLookupStrategy 正在从 spring-data-commons 实现 QueryLookupStrategy 接口,该接口是从 spring-data-jpa jar 中传递的。问题是新的 solr 与旧的 spring-data-jpa 不兼容 - QueryLookupStrategy 中的方法签名已更改,并且代码未正确编译。将 spring-data-jpa 升级到 1.10.1 解决了这个问题。我假设你有类似的问题。跟踪哪里抛出异常,并在spring jars中搜索编译问题。

    【讨论】:

      【解决方案2】:

      这是由于 spring-data 和 db-driver 依赖的版本不兼容。请检查 db-driver 的版本是否与提供的 spring-data 依赖项兼容。我遇到了同样的问题,通过调整“spring-data”的版本来解决。

      【讨论】:

        猜你喜欢
        • 2020-01-25
        • 2018-06-19
        • 1970-01-01
        • 2013-12-20
        • 2015-11-15
        • 2015-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多