2017-10-11 6 views
2

私はArangoDB用のjavaドライバを使用しています。 String変数にJSONの配列があり、テーブルに挿入します。私は、Webインタフェースの挿入で、次のクエリarangoDBのjavaドライバでバインドされたコレクション

for r in @fromCollection insert r into @targetCollection 

がうまくいけ使用しますが、Javaで私は、これら2つの変数の結合とのトラブルに直面している -

1553 - ERROR_QUERY_BIND_PARAMETER_TYPE 
Will be raised when a bind parameter has an invalid value or type 

を、あなたは変数としてバインディングコレクション名で私を助けることができますArangoDBで?

+0

は、以下のようにマークすることを忘れないでくださいをバインド・パラメータの詳細について見てみましょうhere

あなたのクエリが見えるように持っています答え、そうでない場合は理由についてコメントしてください。 –

答えて

2

JSON String変数がこのクエリでどのように役割を果たすのかわかりません。

あなたはそのための方法importDocuments(String)を使用することができ、あなたの文字列変数に含まれるJSON文書を挿入したいときは:バインドの

特殊なタイプ:クエリを使用して問題に関連

ArangoDB arango = new ArangoDB.Builder().build(); 
arango.db().collection("myCollection").importDocuments(jsonArray); 

パラメータはコレクション名を挿入するために存在します。このタイプのバインドパラメータの先頭には、追加の@シンボルが付いています(したがって、クエリでバインドパラメータを使用する場合は、2つの@シンボルを使用する必要があります)。 Javaでは

for r in @@fromCollection insert r into @@targetCollection 

それは以下のようになります:

ArangoDB arango = new ArangoDB.Builder().build(); 
Map<String, Object> bindVars = new HashMap<>(); 
bindVars.put("@fromCollection", "..."); 
bindVars.put("@toCollection", "..."); 
arango.db().query("for r in @@fromCollection insert r into @@targetCollection", bindVars, null, BaseDocument.class) 
関連する問題