用java讀取Neo4j資料庫。回傳一個org.neo4j.driver.Result型別。需要轉化為List<WechatDepartment>。發現里面有<T> List<T> list(Function<Record, T> var1),這種函式式編程,請問應該怎么以呼叫?
public Result selectChild(Long departmentId) {
try {
Map<String, Object> paramentMap = Collections.singletonMap("departmentId", departmentId);
String sqlText = "MATCH(N:WechatDepartment)-[:child]->(M:WechatDepartment) \n" +
"WHERE N.departmentId = {departmentId} \n" +
"RETURN ID(M) as id, M.departmentId as departmentId, M.name as name, M.order as order, M.enable as enable";
//回傳一個org.neo4j.driver.Result型別
Result result = session.run(sqlText, paramentMap);
//需要轉化為List<WechatDepartment>
//方法1 List<Record> list();
List<Record> records = result.list();
//方法2 <T> List<T> list(Function<Record, T> var1)
???
return result;
} catch (Exception e) {
System.out.println(e);
throw e;
} finally {
//session.close();
}
}
public interface Result extends Iterator<Record> {
List<String> keys();
boolean hasNext();
Record next();
Record single() throws NoSuchRecordException;
Record peek();
Stream<Record> stream();
List<Record> list();
<T> List<T> list(Function<Record, T> var1);
ResultSummary consume();
}
uj5u.com熱心網友回復:
你可以定義一個 Function 的物件,然后傳入到那個list 方法Function<Record, WechatDepartment> getWechatDepartmenList = record -> {
return 從record 里面抽出WechatDepartment的邏輯;
// 比如 WechatDepartment department = new WechatDepartment();
department.setName(record.getName)
department.setCode(record.getDeptCode);
return department;
}
List<WechatDepartment> departments = result.list(getWechatDepartment);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264640.html
標籤:Java相關
上一篇:如何決議運算式生成操作樹?
