java mongodb findOne with long type _id

时间:2014-09-03 12:19:35

标签: 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);
}

和MyItem类如下:

public class MyItem{
    @Id
    private final long itemId;

    //and some other fields

    //and getter methods

}

我的存储库如下:

public interface MyItemRepository extends
    PagingAndSortingRepository<MyItem, String> {

}

提前感谢。

1 个答案:

答案 0 :(得分:1)

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

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