对POJO的ODocument

时间:2015-03-03 11:28:28

标签: java orientdb

最初的问题是基于加载类Extra以及具有相同查询的id。我希望将Extra类自动分配给POJO Extra,然后单独处理id。基本上是这样的:

String q = "SELECT *, out('ExtraToObject').@rid as objectId FROM Extra";
List<ODocument> extras= db.getUnderlying().command(new OSQLSynchQuery<>(q)).execute();
for (ODocument extra : extras) {
    Extra extraPOJO = ODocumentToPojo(ODocument, Extra.class);
    String id = extra.field("objectId");

    //Do stuff
}

我的问题是我不知道如何将ODocument转换为POJO,即ODocumentToPojo函数,而不进行任何数据库连接。

String q = "SELECT *, out('ExtraToObject').@rid as objectId FROM Extra";
List<Extra> extras= db.command(new OSQLSynchQuery<>(q)).execute();

但是我无法获得objectId。如果不是绝对必要的话,我也不想自己遍历ODocument,因为两者之间的映射应该已经存在。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您只想从pojo获取rid,可以将其定义为字段:

@Id
private Object rid;

public Object getRid() {
    return rid;
}

如果您需要对话,请在documentation中说明:

Object pojo = db.getUserObjectByRecord(record);
ODocument doc = db.getRecordByUserObject( pojo );