我正在尝试使用 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(前一种方式比后者好得多)。
https://stackoverflow.com/questions/10170506/
相关文章:
macos - 使用 OS X 10.10 Yosemite Beta 使用 Homebrew 重新
node.js - Mongoose:ObjectId 比较失败不一致
java - 为 MongoDB Java 驱动程序配置日志记录
javascript - Meteor.js 部署到 "example.com"还是 "www.ex
c# - 如何将 BsonDocument 对象反序列化回类
mongodb - 如何在 Mongoose Schema 中表示 MongoDB GeoJSON
python - 使用 PyMongo 将 Pandas 数据框插入 mongodb
node.js - 按日期时间字段获取最新的 MongoDB 记录