首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring数据MongoDb findById未返回结果

Spring数据MongoDb findById未返回结果
EN

Stack Overflow用户
提问于 2017-03-07 16:17:44
回答 1查看 10.8K关注 0票数 0

我有一个Snozberry对象,如下所示:

代码语言:javascript
复制
 {
  "id":"3cbdb746-561d-4e21-82e0-b7cfcad3a094",
  "thingId":"7cbfb7a6-763d-6ef1-271b-b2a0cfc2fa43",
  "stuffId":81,
  "bits":"WooHoo"
 }

Java类(为了简洁起见省略了构造函数、getter和setter):

代码语言:javascript
复制
@Document(collection="Snozberry")
public class Snozberry {
 @Id
 private UUID id;
 private UUID thingId;
 private Long stuffId;
 private String bits;
}

存储库如下所示:

代码语言:javascript
复制
public interface SnozberryRepository extends MongoRepository<Snozberry,UUID>{
 Snozberry findByThingId(UUID Id);
 Snozberry findById(UUID id);
}

在MongoDb集合中,_id & thingId字段被定义为UUID。我想返回与我传入的id值匹配的文档。

我可以使用findAll()返回所有对象,也可以使用

代码语言:javascript
复制
  Snozberry findByThingId(UUID id)

方法定义在我的存储库中,因此我知道它正在与DB ok对话,并且它可以找到(non ) UUID字段ok。

我试过默认的

代码语言:javascript
复制
findOne(UUID.fromString("3cbdb746-561d-4e21-82e0-b7cfcad3a094")

我还调用了在存储库中定义的方法

代码语言:javascript
复制
Snozberry findById(UUID id)

但这两个都返回null。我错过了什么(感觉应该是显而易见的)。

谢谢M

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 16:30:57

很可能您的问题在于由_id生成的MongoDB字段。由于您的类中已经有一个id字段,MongoDB将尝试做几件事来使用它,如果没有,它将分配它自己的_id,请看下面的页面

http://docs.spring.io/spring-data/mongodb/docs/1.2.0.RELEASE/reference/html/mapping-chapter.html

转到7.1.1节:如何在映射层中处理“_id”字段

看看是否有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42653171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档