6

私は次のようなことをするためにパラメータを渡して(javaで)cypherクエリを呼び出そうとしています:

WHERE node.property IN [{param}]

完全な例:

START person=node:persons('Name:*')
MATCH person->[:Girl]->friend
WHERE person.Name IN [{Names}] AND friend.Hair = 'Blond'
RETURN person.Name, friend.Name

パラメータについては、以下を使用してみました。

  1. 文字列を含むコレクション
  2. 文字列を含む配列
  3. 「'JoeBlow'、'BlowJoe'」のような区切り文字列

私は本当に最後のものが機能すると思いましたが、パラメータは単一の文字列、つまり['Joe Blow'、'BlowJoe']ではなく["'Joe Blow'、'BlowJoe'"]として置き換えられていると思います。私は1つの値を渡すことによってこれを証明しました、そしてそれはうまくいきました。コードをトレースしようとしましたが、scalaで迷子になりました。

他のオプション、考えはありますか?

乾杯

4

1 に答える 1

11

INキーワードの後の角かっこを削除し、パラメーターとしてコレクションを使用すると、より適切に機能するはずです。

START person=node:persons('Name:*')
MATCH person->[:Girl]->friend
WHERE person.Name IN {Names} AND friend.Hair = 'Blond'
RETURN person.Name, friend.Name
于 2012-11-30T14:08:12.740 に答える