java - MongoJack 未找到对象

标签 java mongodb mongojack

在尝试使用 MongoJack 时,它突然开始在每个 findOneById 查询中返回 null。即使该对象正在数据库中创建并且返回的 ID 有效。

代码

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.MongoClient;
import org.mongojack.Id;
import org.mongojack.JacksonDBCollection;
import org.mongojack.WriteResult;

public class test {

    public static void main(String[] args){
        MongoClient mongoClient = new MongoClient();
        DB db = mongoClient.getDB( "test" );

        DBCollection dbCollection = db.getCollection("myobject");
        JacksonDBCollection<MyObject, String> coll = JacksonDBCollection.wrap(dbCollection, MyObject.class,
            String.class);
        MyObject myObject = new MyObject();
        WriteResult<MyObject, String> result = coll.insert(myObject);
        String id = result.getSavedId();
        MyObject savedObject = coll.findOneById(id);

        System.out.println(savedObject);

    }

}

class MyObject{
    @Id
    private String id;
}

其输出为:

null
Process finished with exit code 0

但是正在使用数据库中的 ID 创建一条记录。

最佳答案

我发现只需将 @ObjectId 注释添加到类 MyObjectid 中似乎就可以解决问题

class MyObject{
    @Id @ObjectId
    private String id;
}

关于java - MongoJack 未找到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37518283/

相关文章:

java.lang.IllegalAccessError 当试图从 MongoDB 制作 POJO 时?

java - Spring AOP 切点验证注解存在

java - onTouch 与多点触控和 SoundPool 运动事件

java - 为什么我得到错误的输出

mysql - 用于小型数据集的 MongoDB

javascript - 如何将回调返回值分配给 Mongoose 中的变量?

java - MongoJack 支持 @javax.persistance.Id 不起作用

java - 左连接两个与 JPQL 无关的表

java - 我想了解 mongodb

java - 无法使用 mongo 和 mongojack 反序列化 localdatetime