CYPHER QUERY :-Change Array由 collect(n.name) 在 cypher query



Neo4j cypher query collect(( 在 result 中返回数组。为了迭代它,我们需要它添加到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(( 函数获取数据并迭代它

您是否检查过查看返回的实际对象

resultSet.getObject("ids")

如果它类似于用户定义的过程,Cypher 中的集合将作为 ArrayList 返回,因此请尝试将返回的对象强制转换为 ArrayList,看看这是否适合您。

将对象强制转换为 ArrayList

                    Object idsList=rs.getObject("ids");
                    System.out.println("idsList :: "+idsList);
                    ArrayList<String> userIds = (ArrayList<String>) idsList;
                    System.out.println("List2 Value: "+userIds);

相关内容

最新更新