2

当我创建一个 Spring Data 存储库的方法时,findByName(…)一切正常。但是当使用findByField1AndName(…)Spring Data 时,MongoDB 只为最后一个参数生成查询:

{ name : 'qwerty' }

但我预计它会产生

{ field1 : 'something', name : 'querty' }

有什么问题?请帮忙。

UPD1:如果有人遇到这样的问题,您可以使用@Query 注解手动构建您的查询,示例如下:

@Query("{ region: ?0, product: ?1, direction: ?2, deliveryCondition: ?3, sortament: ?4}")
QuotationKey findByRegionAndProductAndMarketDirectionAndDeliveryConditionAndSortament(
        Geography region, Product product, MarketDirection direction,
        DeliveryCondition deliveryCondition, Sortament sortament);
4

2 回答 2

1

不知道我是否遗漏了什么。我试过 1.0.3 和 1.0.4 还是不行。现在唯一的工作版本看起来像 1.0.1

当我尝试使用 1.0.3 和 1.0.4 的 findByZipCodeAndName 之类的东西时,这就是我在日志中看到的

MongoQueryCreator [DEBUG] Created query Query: { "zipCode" : "test"}, Fields: null, Sort: null

使用 1.0.1 它可以按预期工作:

MongoQueryCreator [DEBUG] Created query { "zipCode" : "test" , "name" : "blah"}

显然在新版本中只有第一个字段被解释和查询。

于 2012-08-31T21:15:51.227 回答
0

您似乎偶然发现了1.0.2 和 1.1.M1 中存在的错误。修复程序已经发布了一段时间,因此升级到最新版本(1.0.4、1.1 RC1)应该可以解决问题。

于 2012-08-26T10:59:54.300 回答