具有长类型_id的java mongodb findOne

具有长类型_id的java mongodb findOne,java,mongodb,spring-data-mongodb,Java,Mongodb,Spring Data Mongodb,我的mongodb集合中的ID采用以下格式 "_id" : NumberLong("502434721406525440"), 我正在尝试执行mongo的findOne方法来检索具有所需id的项。但是,我无法使用以下代码段进行管理 @Autowired private MyItemRepository myRepo; public MyItem getItemById(String itemId) { return myRepo.findOne(itemId); } MyIte

我的mongodb集合中的ID采用以下格式

  "_id" : NumberLong("502434721406525440"),
我正在尝试执行mongo的findOne方法来检索具有所需id的项。但是,我无法使用以下代码段进行管理

@Autowired
private MyItemRepository myRepo;

public MyItem getItemById(String itemId) {
    return myRepo.findOne(itemId);
}
MyItem类如下所示:

public class MyItem{
    @Id
    private final long itemId;

    //and some other fields

    //and getter methods

}
public interface MyItemRepository extends
    PagingAndSortingRepository<MyItem, String> {

}
我的存储库如下所示:

public class MyItem{
    @Id
    private final long itemId;

    //and some other fields

    //and getter methods

}
public interface MyItemRepository extends
    PagingAndSortingRepository<MyItem, String> {

}
公共接口MyItemRepository扩展
分页和排序存储库{
}

提前感谢。

重写findOne方法解决了我的问题。我可以帮助任何有同样问题的人

mongoTemplate.findOne(
            Query.query(Criteria.where("itemId").is(Long.decode(itemId))),
            MyItem.class, collectionName);

我认为这可能与字符串和数字类型有关