【发布时间】:2015-05-26 21:59:52
【问题描述】:
我是 Spring Data MongoDB 的新手。
我正在尝试使用@DBRef 引用另一个Document(新闻)的Document(评论)与spring-data-mongodb-1.7.0.RELEASE.jar .
为了简单起见,我没有将任何东西作为参数传递给 rest 调用。 Comments 集合存在于数据库中。我收到以下异常:
严重:Servlet.service() for servlet [appServlet] 在上下文中 路径 [/news] 抛出异常 [处理程序处理失败;嵌套的 例外是 java.lang.NoSuchMethodError: com.mongodb.DBRef.(Ljava/lang/String;Ljava/lang/Object;)V] 与 根本原因 java.lang.NoSuchMethodError: com.mongodb.DBRef.(Ljava/lang/String;Ljava/lang/Object;)V
以下是我的代码:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Comments{
@Id
private String id;
private String Comment;
public Comments(String comment){
this.id = UUID.randomUUID().toString();
this.comment = comment
}
//getters & setters
}
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class News{
@Id
private String id;
private String Title;
private String summary;
@DBRef
private List<Comments> comments;
public News(){
}
public News(String title, String summary){
this.id = UUID.randomUUID().toString();
this.title = title;
this.summary = summary;
}
//getters and setters
}
@RestController
@RequestMapping(value = "/rest/test")
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/createnews", method = RequestMethod.POST)
public void createNews() {
logger.info("createNews method started");
News news = new News("News Title", "News summary");
List<Comments> commentList = new ArrayList<Comments>();
Comments comments = new Comments("News Comments");
commentList.add( comments );
news.setComments( commentList );
logger.info("createNews method ended");
}
}
问题:
我无法将@DBRef 与 spring-data-mongodb-1.7.0.RELEASE.jar 一起使用。
我正在寻求专家的建议。提前致谢。
【问题讨论】:
-
感谢绫野的回复。我想要的是存储为对象而不是嵌入式文档。是的,嵌入式文档有效
标签: mongodb spring-data