2014-06-17 75 views
0

我的用例是在遠程neo4j中創建節點。 java代碼嘗試創建22個節點,但在第11個節點上它掛起執行查詢。Neo4j-jdbc在創建只有10個節點時掛起

順便說一下,我使用desci字段來放置節點鍵值描述,以便以後反序列化它。 T是一個具有getMap函數的通用對象。

public Long[] put(T[] a) throws SQLException,BiopolisGeneralException 
{ 
    Long[] ids=new Long[a.length]; 
    int index=0; 
    for(T x : a) 
    {   
     System.out.println(index+" count "+a.length); 
     String json=(new Gson()).toJson(x); 
     System.out.println(json); 
     Map<String,Object> map=x.getMap();    
     String desci=Base64.encodeBase64String(json.getBytes()); 
     map.put("desci",desci); 
     String queryString=" CREATE (n:"+this.nodetype+ 
       " {1}) RETURN ID(n)"; 
     Map<String,Object> mm=new HashMap<String,Object>(); 
     mm.put("1", map); 
     ResultSet rs=this.bgr.conn.executeQuery(queryString, mm); 
     if(!rs.next()) 
     {     
      throw new BiopolisGeneralException("Cannot create "+json); 
     } 
     else 
     { 
      Long id=rs.getLong(1); 
      System.out.println(id); 
      ids[index++]=id; 
     } 
     System.out.println("do"); 
    } 
    System.out.println("ok"); 
    return ids; 
} 

回答

2

只是一個猜測,但是有沒有10的命中限制沒有明確地關閉結果集?嘗試在else子句後面添加rs.close(),看看是否有所作爲。

如果確實有效,您可能希望在try-finally塊中使用它以提高魯棒性。

+0

它像魅力一樣工作。非常感謝你。我會用資源包裝它。 – user2987581

+0

是的,嘗試與資源將是最好的。隨意標記我的答案被接受,順便說一句;-) – ATG