Neo4j 密码查询collect() 在结果中返回数组。为了迭代它,我们需要将它添加到 arrayList 中。我们之前使用的流程没有帮助我们并抛出异常。
以前的代码:-
public String GettingCurrentDate() {
Connection connect = null;
String query=null;
try {
connect = graphdbConnect();
Statement stmt = connect.createStatement();
query="match(n:learner) "
+ " return collect(n.name) as ids";
System.out.println(query);
ResultSet rs = stmt.executeQuery(query.toLowerCase());
while(rs.next()){
Array idsList=rs.getArray("ids");
System.out.println("idsList :: "+idsList);
ArrayList<String> userIds = new ArrayList<>();
String[] userIdsArray = (String[])rs.getArray("ids").getArray();
for(String id : userIdsArray) {
userIds.add(id);
System.out.println(userIds+"------userId");
}
}
}
catch(Exception e) {
e.printStackTrace();
} finally {
if(connect!=null) {
try {
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return "sucess";
}
此代码出现异常java.sql.SQLFeatureNotSupportedException:获取数组
问题:-我们如何从 COLLECT() 函数获取数据并迭代它
最佳答案
您是否检查过返回的实际对象
resultSet.getObject("ids")
如果它像用户定义的过程一样,Cypher 中的集合将作为 ArrayList 返回,因此请尝试将返回的对象转换为 ArrayList,看看这是否适合您。
关于java - CYPHER QUERY :-Change Arrayreturned by collect(n. name) 在 Arraylist (util) 的 cypher 查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43362993/