我有两个数据库表,DeviceCatalogue和SkuDetails。 DeviceCatalogue与SkuDetails有一对多的关系,因为skudetails是一个数组。当我根据价格过滤skudetails时,问题就出现了。
用于查询数据库我在DeviceCatalogue上使用以下谓词:
"Any skudetails.priceWithVat >= 1 And Any skudetails.priceWithVat <= 2000"
它基本上归还了这个范围内的所有设备。但问题是我只需要那些基本上属于过滤器的skudetails,但由于它的反向关系,它给我带来了这个范围的所有skudetails。
我也尝试使用Subquery,但它仍然没有解决方案。
让我们举一个问题的例子。
IPhone6 <Devices>
- color -> Black , storage -> 64GB , Price 2000 <SkuDetail>
- color -> Black , storage -> 32GB , Price 1800 <SkuDetail>
- color -> White , storage -> 128GB , Price 2800 <SkuDetail>
我只需要黑色32gb,因为它在这个范围内,但我得到了所有3个。作为im返回设备实体。
我应该将我的谓词更改为其他内容以获取我各自的结果或我做任何错误的事情。或者数据库的整体架构有问题。