2016-04-19 10 views
0

は、このクエリで助けてください:スプリングデータneo4jはドット 'を理解していません。'パラメータに

予想通り type = "friends.level"が、結果はレベルによってソートされていない
@Query("MATCH (n:User{userId:1})--(friends) return friends order by {type}") 
Iterable<Map<String, Object>> getLastFriendsByLevel(@Param("userId") long userId, @Param("type") String type); 

。パラメータ "type"に '。'が含まれていると、順序付けが機能しないようです。

どうしたのですか?

+0

ノードまたは関係のプロパティキーをパラメータ化できない場合は、クエリ自体に 'friends.level'を書く必要があります –

+0

ありがとうございました。 @Query( "マッチ(n:User {userId:1}) - 友人の友達の注文を返す{type}")Iterable> getLastFriendsByLevel(@Param( "userId")long userId、@Param( "type")String type)type = "level"のときも動作しませんか?または、注文句にパラメータを渡す他の方法はありますか? –

+0

あなたの質問は、現在の状態では理解するのが難しいです。 [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照して、質問を編集してください。 – buczek

答えて

0

これはあなたのために働くかもしれない:

@Query("MATCH (n:User{userId: {userId}})--(friends) return friends order by friends[{key}]") 
Iterable<Map<String, Object>> getLastFriendsByLevel(@Param("userId") long userId, @Param("key") String key); 

このクエリは、実際にuserIdパラメータを使用し、それがORDER BYfriendsそのキーに(例えば、「レベル」)keyパラメータ値を使用しています。

+0

それは動作します。完璧な珍しい提案をありがとう。それは多くの時間を節約します。 –

+0

あなたに最適な答えを常に[Accept](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)することを忘れないでください。 – cybersam

関連する問題