[英]Spring data mongo GridFsOperation.findOne doesn't find first
我正在使用 Spring Data Mongo 版本 1.10.18 和 Java 8。我不明白我在使用GridFsOperations.findOne
方法時看到的行為。
Query maxAccountSetVersionQuery = new Query().addCriteria(GridFsCriteria.whereMetaData("tenantId").is(tenantId))
.addCriteria(GridFsCriteria.whereMetaData("contextId").is(businessContextId))
.addCriteria(GridFsCriteria.whereMetaData("collection").is("genericAuthorizationAccount"))
.with(new Sort(Sort.Direction.DESC, "metadata.accountSetVersion"));
final GridFSDBFile findOneResult = gridOperations.findOne(maxAccountSetVersionQuery);
final List<GridFSDBFile> gridFSDBFiles = gridOperations.find(maxAccountSetVersionQuery);
final GridFSDBFile firstInListResult = gridFSDBFiles.get(0);
final String output = String.format("findOneResult: %s\nfirstInListResult: %s",
findOneResult.getMetaData().get("accountSetVersion"),
firstInListResult.getMetaData().get("accountSetVersion"));
System.out.println(output);
控制台 output 是:
findOneResult: 1
firstInListResult: 4
在這里要清楚,我期望的答案是 4,這意味着firstInListResult
正在引用預期的文檔。
所以,兩個問題:
findOneResult
和firstInListResult
不引用同一文檔中的一個? 或者換個方式問,為什么findOne
找不到第一個文件?事實證明,這目前是 Spring Data MongoDb 的 GridFsTemplate 實現中的一個錯誤。 https://jira.spring.io/browse/DATAMONGO-2411令人驚訝的是,在我最初提出這個問題之后,僅在 4 天前創建了一個帶有修復的拉取請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.