如何从 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);
我有以下代码。问题是我找不到任何关于如何将 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);