2017-10-11 65 views
1

我用这种依赖性在我的项目:春数据/ MongoDB的 - 的NoSuchMethodError:com.mongodb.DBRef

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-mongodb</artifactId> 
    <version>1.5.1.RELEASE</version> 
</dependency> 

,并用这种依赖性寿MongoDB的潜水员人工制品是在我的项目:

mongodb-driver-3.4.1.jar and 
mongodb-driver.core-3.4.1.jar 

两者都有包装com.mongodb。 我收到以下例外情况:

nested exception is java.lang.NoSuchMethodError: com.mongodb.DBRef.<init>(Lcom/mongodb/DB;Ljava/lang/String;Ljava/lang/Object;)V 

有没有人知道我在做什么错?

这是我收集:

import org.springframework.data.annotation.Id; 

进口org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "MyCollection") 
public class MyCollection { 

@Id 
private String id; 
@DBRef 
private User user; 

} 

Spring-boot-starter-data-mongodb

+0

我没有线索,但在上面你给版本的依赖和截图没有添加的版本? – degath

+0

,因为版本是在父POM中定义的 – quma

回答

0

两种传统驱动程序(2.x)和新的驱动程序(3.x)具有相同的封装(com.mongodb

java.lang.NoSuchMethodError: com.mongodb.DBRef.<init>(Lcom/mongodb/DB;Ljava/lang/String;Ljava/lang/Object;)V 

https://github.com/mongodb/mongo-java-driver/blob/2.14.x/src/main/com/mongodb/DBRef.java#L67

通知的第一个参数是DB这是2.x驱动程序中的构造函数,并从3.x版本中删除上。

因此,它看起来像您的项目仍然参考2.x驱动程序版本。