java - 在 mongo 中将 POJO 对象转换为 DBObject

标签 java mongodb

谁能知道在 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/

相关文章:

javascript - ; [HPM] 尝试代理请求时发生错误

java - 无法使用hibernate将数据库保存到h2数据库

Java RSA如何生成不同的公钥?

java - Android Socket 继续读取直到特定的字符串序列

python - 通过 Python 脚本使用 mongo --eval 命令时未评估

javascript - mongodb在事件评论中将用户添加到喜欢的数组

java - 在Java或Android中合并AMR音频文件

java - 搜索服务失败时的设计模式

python - 最新的 django-mongodb-engine

node.js - Mongoose withTransaction 仅部分执行