Spring MongoRepository @Query JSONParseException

Spring MongoRepository @Query JSONParseException

我有以下 MongoDB 个实体:

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 == 当前玩家 或[=时应该为匹配返回匹配列表39=] playerTwo == 当前玩家。我为此使用了 MongoRepository:

public interface MatchRepository extends MongoRepository<Match, String> {

    @Query(value = "{'$or': [{'playerOne.id': ?0}, {'playerTwo.id': ?0}]}")
    List<Match> findByPlayerId(String playerId);
} 

当我执行 findByPlayerId 方法时,我检索到以下错误:

Caused by: com.mongodb.util.JSONParseException: {'$or': [{'playerOne.id': "58ea191756a4302290fff9b1"}, {'playerTwo.id': "58ea191756a4302290fff9b1"0}]}

我注意到错误消息末尾有奇怪的 0 字符:"0}]}

我也做了一些解决方法并将相同的 player.id 作为第二个方法参数传递,它工作正常:

@Query(value = "{'$or': [{'playerOne.id': ?0}, {'playerTwo.id': ?1}]}")
List<Match> findByPlayerId(String playerId, String palyerId2);

您知道为什么首先要处理 returns JSONParseException 吗?

这是更改的票据。它已被解决并发布。尝试引导版本 1.5.2 及更高版本或 spring mongo 1.10.1 及更高版本。

https://jira.spring.io/browse/DATAMONGO-1603.