나는 다음과 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의 == 현재 플레이어. 나는 이것에 대한 MongoRepository을 사용 :
내가 오류 아래 검색 findByPlayerId 방법을 실행 한public interface MatchRepository extends MongoRepository<Match, String> {
@Query(value = "{'$or': [{'playerOne.id': ?0}, {'playerTwo.id': ?0}]}")
List<Match> findByPlayerId(String playerId);
}
: 나는 오류 메시지의 끝 부분에 이상한 0
문자를 발견
Caused by: com.mongodb.util.JSONParseException: {'$or': [{'playerOne.id': "58ea191756a4302290fff9b1"}, {'playerTwo.id': "58ea191756a4302290fff9b1"0}]}
: "0}]}
나는 또한 몇 가지 해결 방법을 만들었고 두 번째 방법 인수로 동일한 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를 사용합니다. –