java - 使用 MongoDB 和 MongoJack 的简单对象插入

标签 java mongodb jackson mongojack

我正在尝试遵循 MongoJack tutorial 但我没有完成第一个任务:将对象插入数据库。

这是我的:

DB db = new MongoClient().getDB("mydb");

JacksonDBCollection<MyDomainObject, String> coll =
    JacksonDBCollection.wrap(db.getCollection("coll"),
                             MyDomainObject.class,
                             String.class);

MyDomainObject obj = new MyDomainObject(ObjectId.get().toString(), 123456789L);

WriteResult<MyDomainObject, String> result = coll.insert(obj);

System.out.println(result.getSavedId());

MyDomainObject 类如下所示:

class MyDomainObject {

    // @org.mongojack.ObjectId  doesn't work
    public String id;
    public long someValue;

    public MyDomainObject(String id, long someValue) {
        this.id = id;
        this.someValue = someValue;
    }

}

使用上面的代码,我得到了以下异常:

Exception in thread "main" java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to java.lang.String
    at Test.main(Test.java:26)

而且我一辈子都弄不明白为什么。任何帮助表示赞赏。

最佳答案

显然我所要做的就是重命名

public String id;

public String _id;

(用 @JsonProperty("_id") 注释字段似乎也可以解决问题。AFAICT 没有办法说 public String id 应该 替换 _id 字段。如果有人知道如何执行此操作,我对如何操作很感兴趣。

关于java - 使用 MongoDB 和 MongoJack 的简单对象插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23310107/

相关文章:

java - 使用 Jackson 映射 JSON 对象

java - JSTL c :set not working as expected

java - JSON/GSON 将 key 更改为 Java

javascript - 使用 Node js更新mongodb中的单个文档

java - @Deprecated SerializationFeature.WRITE_EMPTY_JSON_ARRAYS 的替代品

java - JFace 错误对话框 : how do I show something in the details portion?

ruby-on-rails - 使用 MongoID 的不区分大小写的查询条件

具有文档字段比较的 MongoDB partialFilterExpression

java - jackson JodaTime DateTime 未序列化

java - Jackson JSON/XML 根元素不相同