gpt4 book ai didi

java - 使用 Java 将 Java 对象插入 MongoDB 集合

转载 作者:IT老高 更新时间:2023-10-28 11:06:37 25 4
gpt4 key购买 nike

我正在尝试使用 Java 将整个 Java 对象插入到 MongoDB 集合中。我收到以下错误:

错误:

Exception in thread "main" java.lang.IllegalArgumentException: can't serialize class net.yogesh.test.Employee
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:185)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:119)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:65)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:176)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:134)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:129)
at com.mongodb.DBCollection.save(DBCollection.java:418)
at net.yogesh.test.test.main(test.java:31)

Emplyoee.java (POJO)

package net.yogesh.test;

import java.io.Serializable;

public class Employee implements Serializable {

private static final long serialVersionUID = 1L;
private long no;
private String name;

public Employee() {
}

public long getNo() {
return no;
}

public void setNo(long no) {
this.no = no;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

主方法类 (test.java)

package net.yogesh.test;

import java.net.UnknownHostException;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class test {

public static void main(String[] args) throws UnknownHostException,
MongoException {

Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("test");

Employee employee = new Employee();
employee.setNo(1L);
employee.setName("yogesh");


BasicDBObject basicDBObject = new BasicDBObject("Name", employee);

DBCollection dbCollection = db.getCollection("NameColl");

dbCollection.save(basicDBObject);

}

}

谁能解释我为什么会收到这个错误?

最佳答案

我有点困惑,不知道为什么你会认为这首先会起作用。您需要知道的第一件事是如何将您的 POJO 映射到 MongoDB 文档。目前,您没有告诉系统(您的代码)如何执行此操作。

您可以为此使用映射库(想到 Morphia)或使用 ReflectionDBObject。任何一种解决方案都允许您将 POJO 映射到 MongoDB 文档或将 MongoDB 文档映射到 POJO(前一种方式比后者好得多)。

关于java - 使用 Java 将 Java 对象插入 MongoDB 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com