如何从OResultSet获取JAVA对象

如何从OResultSet获取JAVA对象,java,orientdb,orientdb2.2,Java,Orientdb,Orientdb2.2,我有以下代码。问题是,我找不到任何关于如何将OResult提取/转换为java类型并获取pojo的文档 OrientDBObject orientDBObject; try (ODatabaseObject databaseObjectInner = orientDBObject.open(dbName, username, password)) { specFromDB = getEntitySpecInt3(databaseObjectInner, objectId, rid

我有以下代码。问题是,我找不到任何关于如何将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()
,它只返回POJO

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

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

谢谢@Luigi Dell'Aquila。db.objectQuery()就是我想要的!