Neo4j cypher query collect()返回结果中的Array。为了迭代它,我们需要在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:get array
问题: - 我们将如何从COLLECT()函数获取数据并迭代它
答案 0 :(得分:1)
您是否检查过
返回的实际对象resultSet.getObject("ids")
如果它与用户定义的过程类似,则Cypher中的集合将作为ArrayLists返回,因此请尝试将返回的对象转换为ArrayList,看看它是否适合您。
答案 1 :(得分:0)
将对象转换为ArrayList
Object idsList=rs.getObject("ids");
System.out.println("idsList :: "+idsList);
ArrayList<String> userIds = (ArrayList<String>) idsList;
System.out.println("List2 Value: "+userIds);