Java Spring数据MongoDb findById未返回结果
我有一个Snozberry对象,看起来像这样: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
{
"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)