spring数据mongodb存储库查询连接是如何工作的?

ix0qys7i  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(321)

当我创建一个spring数据存储库的方法时 findByName(…) 一切正常。但是当使用 findByField1AndName(…) spring data mongodb仅为最后一个参数生成查询:

{ name : 'qwerty' }

但我预料到了

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

有什么问题吗?请帮忙。
upd1:如果有人遇到这样的问题,可以使用@query annotation手动构建查询,示例如下:

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

li9yvcax1#

您似乎无意中发现了1.0.2和1.1.m1中存在的错误。修复程序已经发布了一段时间,所以升级到最新版本(1.0.4,1.1rc1)应该可以解决这个问题。

dwbf0jvd

dwbf0jvd2#

不确定我是否遗漏了什么。我试过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"}

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

相关问题