【发布时间】:2017-01-17 14:20:59
【问题描述】:
我是 MongoDB 的新手,如果问题是基本的,很抱歉。
我正在尝试让一个基本的 CRUD 与 Java 基本对象 (POJO) 一起使用,但是此代码失败了。 (这样做的正确方法是什么?我认为它可能接近这个):
BasicDBObject document = new BasicDBObject();
document.put("name", user);
dbCollection.insert(document);
这是我收到的消息:
Exception in thread "main" java.lang.IllegalArgumentException: can't serialize class entities.users.NormalUser
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:270)
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:174)
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:120)
at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:27)
at com.mongodb.OutMessage.putObject(OutMessage.java:289)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:261)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:226)
at com.mongodb.DBCollection.insert(DBCollection.java:75)
at com.mongodb.DBCollection.insert(DBCollection.java:59)
at com.mongodb.DBCollection.insert(DBCollection.java:104)
at repositories.UsersRepository.createUser(UsersRepository.java:53)
at repositories.UsersRepository.main(UsersRepository.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
【问题讨论】:
-
能否请您添加一些用户类/变量定义的详细信息?
-
@notionquest 当然,我会尽快更新问题,谢谢
-
@notionquest 你可以在这里查看它们。如果您需要更多信息,请告诉我stackoverflow.com/questions/39397029/…
-
Gender 和 Role 属性可能会产生序列化问题。请问您可以尝试插入没有这两个属性的文档以进行测试吗?
-
@notionquest 我摆脱了这些属性,但问题仍然存在