如何从 OResultSet 获取 JAVA 对象

How to get JAVA object from OResultSet

我有以下代码。问题是我找不到任何关于如何将 extract/cast OResult 转换为我的 java 类型并获取 pojo 的文档。

OrientDBObject orientDBObject;
try (ODatabaseObject databaseObjectInner = orientDBObject.open(dbName,     username, password)) {
    specFromDB = getEntitySpecInt3(databaseObjectInner, objectId, rid);
    try (OResultSet resultSet = databaseObject.query(queryByRid)) {
        if (!resultSet.hasNext()) {
            return null;
        }

        Object specObj = resultSet.next();

        // how to cast properly?
        return (EntitySpec) specObj;
        }
    }

如何从 OResult 中转换或获取对象?

谢谢。

在 OrientDB v 3.0 中,您有两种方法可以做到这一点。

最简单的方法:只需使用 db.objectQuery() 而不是 db.query(),它只是 returns 个 POJO。

第二种方法是从ORResult中提取OIdentifiable,然后使用db.getUserObjectByRecord()将其转换为POJO:

OResult item = resultSet.next();
OIdentifiable doc = item.toElement();
Object pojo = db.getUserObjectByRecord(doc, null);