は、私は次のMongoDBエンティティを持っている:春MongoRepository @query JSONParseException
public class Player {
@Id
private String id;
private String username;
private int rating;
private boolean active;
}
public class Match {
@Id
private String id;
@DBRef
private Player playerOne;
@DBRef
private Player playerTwo;
}
私は、すべてのプレイヤーのマッチを取得しよう。それは例えば、私は現在のプレーヤーを持っており、リストに一致する==一致playerOneの== 現在のプレーヤーまたは playerTwoため現在のプレーヤー返さなければならないことを意味します。私は、エラーの下に取得しfindByPlayerId方法を実行したら
public interface MatchRepository extends MongoRepository<Match, String> {
@Query(value = "{'$or': [{'playerOne.id': ?0}, {'playerTwo.id': ?0}]}")
List<Match> findByPlayerId(String playerId);
}
:
Caused by: com.mongodb.util.JSONParseException: {'$or': [{'playerOne.id': "58ea191756a4302290fff9b1"}, {'playerTwo.id': "58ea191756a4302290fff9b1"0}]}
を私はエラーメッセージの最後には奇妙な0
文字に気づいた:"0}]}
私はまた、いくつかの回避策を講じて、第2の方法引数として同じplayer.id
を渡し、それはfi ne:
@Query(value = "{'$or': [{'playerOne.id': ?0}, {'playerTwo.id': ?1}]}")
List<Match> findByPlayerId(String playerId, String palyerId2);
最初のアプローチでJSONParseExceptionが返される理由はありますか?
使用しているスプリングブートまたはスプリングデータのバージョンのバージョンは? –
私は春のブート1.5.1.RELEASEを使用します。 –