Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据MongoDb findById未返回结果_Java_Spring Data Mongodb - Fatal编程技术网

Java Spring数据MongoDb findById未返回结果

Java Spring数据MongoDb findById未返回结果,java,spring-data-mongodb,Java,Spring Data Mongodb,我有一个Snozberry对象,看起来像这样: { "id":"3cbdb746-561d-4e21-82e0-b7cfcad3a094", "thingId":"7cbfb7a6-763d-6ef1-271b-b2a0cfc2fa43", "stuffId":81, "bits":"WooHoo" } Java类(为简洁起见省略了构造函数、getter和setter): 存储库看起来像: public interface SnozberryRepository exten

我有一个Snozberry对象,看起来像这样:

 {
  "id":"3cbdb746-561d-4e21-82e0-b7cfcad3a094",
  "thingId":"7cbfb7a6-763d-6ef1-271b-b2a0cfc2fa43",
  "stuffId":81,
  "bits":"WooHoo"
 }
Java类(为简洁起见省略了构造函数、getter和setter):

存储库看起来像:

public interface SnozberryRepository extends MongoRepository<Snozberry,UUID>{
 Snozberry findByThingId(UUID Id);
 Snozberry findById(UUID id);
}
在我的存储库中定义的方法,因此我知道它正在与DB对话,并且它可以找到(非Id)UUID字段

我试过默认值

findOne(UUID.fromString("3cbdb746-561d-4e21-82e0-b7cfcad3a094")
我还调用了存储库中定义的这个方法

Snozberry findById(UUID id)
但它们都返回null。我错过了什么(感觉应该是显而易见的)

谢谢
M

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

转到第7.1.1节“映射层中如何处理'\u id'字段”


看看是否有帮助。

谢谢Vipin。下面的答案让我再次看看从Spring返回的JSON。它将Id字段视为字符串而不是UUID,因此我怀疑需要一个自定义转换器将其作为UUID返回。
findOne(UUID.fromString("3cbdb746-561d-4e21-82e0-b7cfcad3a094")
Snozberry findById(UUID id)