2017-10-11 6 views
2

나는 ArangoDB 용 java 드라이버를 사용하고 있습니다. String 변수에 JSON 배열이 있는데이를 테이블에 삽입하려고합니다. 나는arangoDB 용 자바 드라이버에 바인드 컬렉션

for r in @fromCollection insert r into @targetCollection 

웹에서 인터페이스 삽입이 잘가는 다음 쿼리를 사용하지만, 자바에서 나는이 두 변수 바인딩 문제에 직면하고있어 - 변수로 수집 이름을 바인딩

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

당신이 날 도울 수를 ArangoDB에 있습니까?

+0

가로 아래에 표시하는 것을 잊지 마세요 대답을하고 그렇지 않은 경우 이유에 관해서 의견을 말하십시오. –

답변

2

JSON String 변수가이 쿼리에서 어떻게 작동하는지 잘 모르겠습니다.

당신은 당신이 그것을 위해 방법 importDocuments(String)를 사용할 수있는 문자열 변수에 포함 된 JSON 문서를 삽입 할 때 : 바인딩의

특별한 유형 : 조회에 문제에 관련

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

컬렉션 이름을 주입하기위한 매개 변수가 있습니다. 이 유형의 바인드 매개 변수에는 추가로 @ 기호가 붙는 이름이 붙습니다 (따라서 쿼리에서 바인드 매개 변수를 사용하는 경우 두 개의 @ 기호를 사용해야합니다). 자바에서

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

그것은 다음과 같습니다 : 자세한 내용에 대한 바인드 매개 변수는 here

조회에보고가 살펴

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)