谁能知道在 mongo 中将 Pojo 对象转换为 DBObject 的最简单方法。
有一个 POJO 对象,我需要将其转换为 DBObject 并返回到不同的实体对象。
实体类:
public class StagingDocument extends AbstractDocument {
@Field("source")
private String source;
@Field("content")
private ContentDocument content;
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public ContentDocument getContent() {
return content;
}
public void setContent(ContentDocument content) {
this.content = content;
}
}
public class AbstractDocument extends BaseDocument implements Serializable {
@Field("geoLocation")
private LocationDocument geoLocation = null;
@Field("user")
private UserDocument user = null;
@Field("systemTime")
private long systemTime;
public LocationDocument getGeoLocation() {
return geoLocation;
}
public void setGeoLocation(LocationDocument geoLocation) {
this.geoLocation = geoLocation;
}
public UserDocument getUserInfo() {
return user;
}
public void setUserInfo(UserDocument userInfo) {
user = userInfo;
}
public long getSystemTime() {
return systemTime;
}
public void setSystemTime(long systemTime) {
this.systemTime = systemTime;
}
public class EnrichDocument extends AbstractDocument{
@Field("source")
private String source;
@Field("content")
private ContentDocument content;
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public ContentDocument getContent() {
return content;
}
public void setContent(ContentDocument content) {
this.content = content;
}
这里我有 StagingDocument,我必须将其转换为 DBObject,然后再转换为 EnrichDocument。
这是我尝试过的
public String saveToEnrichDocument(StagingDocument test) {
Here I need to covert test object to DBObject and then into EnrichDocument entity.
EnrichDocument document = new EnrichDocument();
/* After coverting I have to save it to the db */
EnrichDocument enrichPayload = enrichStagingDocumentRepository.save(document);
String enrichObjectId = enrichPayload.getId().toString();
return enrichObjectId;
}
最佳答案
在我的一个项目中,我切换到 Morphia 作为 OR Mapper,它为我做了这些事情。
一个非常快速的解决方案可能是将 POJO 序列化为 JSON(例如使用 GSON),然后使用 com.mongodb.util.JSON.parse(..) 生成 DBObject(反之亦然)。如果你在生产中需要它——我不知道我是否会那样做。至少我会用测试覆盖它。
关于java - 在 mongo 中将 POJO 对象转换为 DBObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25281924/