具有长类型_id的java mongodb findOne

标签 java mongodb spring-data-mongodb

我的 mongodb 集合中的 ids 格式如下

  "_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> {

}

提前致谢。

最佳答案

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

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

关于具有长类型_id的java mongodb findOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644149/

相关文章:

java - 如何限制Spring data Mongo的map reduce方法返回的MapReduceResults的大小

java - 如何使用 Eclipse 模板插入包声明?

java - Hibernate - TableView 绑定(bind)

java - 如何将变量的值分配给线程以及何时应该这样做?

mongodb - 在 mongodb 中,如何将具有空值的数组字段替换为空数组

c++ - 在 Windows 上构建 MongoDB C++ 驱动程序

mongodb - Mongoose 嵌套数组 $push

Spring Data MongoDB Repository - JPA 规范,如

java - ASM之前看一下maxStack指令吗?

mongodb - 在 MongoRepository<Customer,String> 中使用限制和跳过