Java Neo4jJDBC仅在创建10个节点时挂起
我的用例是在远程neo4j中创建节点。 java代码试图创建22个节点,但在第11个节点,它挂起执行查询 顺便说一下,我使用desci字段来放置节点键值描述,以便稍后对其进行反序列化。T是具有getMap函数的通用对象Java Neo4jJDBC仅在创建10个节点时挂起,java,neo4j,Java,Neo4j,我的用例是在远程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
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;
}
public Long[]put(T[]a)抛出SQLException、BiopolisGeneralException
{
Long[]ids=新的Long[a.length];
int指数=0;
对于(T x:a)
{
系统输出打印项次(索引+计数+长度);
字符串json=(new Gson()).toJson(x);
System.out.println(json);
Map Map=x.getMap();
String desci=Base64.encodeBase64String(json.getBytes());
地图放置(“描述”,描述);
String queryString=“创建(n):+this.nodetype+
“{1})返回ID(n)”;
Map mm=新的HashMap();
mm.放置(“1”,地图);
结果集rs=this.bgr.conn.executeQuery(queryString,mm);
如果(!rs.next())
{
抛出新的BiopolisGeneralException(“无法创建”+json);
}
其他的
{
Long id=rs.getLong(1);
系统输出打印项次(id);
id[index++]=id;
}
System.out.println(“do”);
}
System.out.println(“ok”);
返回ID;
}
只是一个猜测,但如果不明确关闭结果集,是否会达到10的限制?尝试在else
子句之后添加rs.close()
,看看这是否有区别
如果它确实有效,您可能希望在try-finally块中使用它,以增强健壮性。它的效果非常好。非常感谢你。我会用资源来包装它。是的,用资源来尝试是最好的。顺便说一句,请随意标记我的答案为已接受;-)