我的用例是在远程neo4j中创建节点。 java代码尝试创建22个节点,但在第11个节点上它会挂起执行查询。
顺便说一下,我使用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;
}
答案 0 :(得分:2)
只是一个猜测,但是没有明确关闭结果集,是否有某个地方被限制为10?尝试在rs.close()
子句后添加else
,看看是否有所作为。
如果确实有效,您可能希望在try-finally块中使用它以获得稳健性。