MongoTemplate的find方法要求传入entity class,传模型类不被接受怎么办?
问题根因
你调用MongoTemplate.find()方法时第二个参数传值错误:该方法的第二个入参要求传入实体类的Class类型对象,你直接填写了类名Orders,没有加.class后缀,参数类型不匹配所以方法不接受该入参。
另外你不需要给Orders类加@Entity注解:@Entity是JPA规范中用于关系型数据库的实体注解,Spring Data MongoDB场景下仅需要@Document注解即可完成实体与集合的映射,你当前的实体类注解配置完全正确,无需额外调整。
解决方案
将第二个参数修改为Orders.class即可,修改后的调用代码如下:
mongoTemplate.find(queryBuy , Orders.class, "orders");
可选排查项(修改后仍报错可依次检查)
- 确认项目已正确引入Spring Data MongoDB相关依赖,且
MongoTemplate、Query、@Document等类和注解的导入路径正确 - 确认
Orders类所在包路径被Spring正确扫描,非启动类所在包及子包的实体类需要额外配置扫描路径 - 确认
queryBuy是org.springframework.data.mongodb.core.query.Query类的实例
内容的提问来源于stack exchange,提问作者Oya
相关产品推荐
相关产品推荐

