我的实体如下:
@Document(collection = "MetadataMerchants")
public class MetadataMerchant {
public String id;
@PartitionKey
public String name;
@JsonProperty("descriptors")
public List<String> descriptors;
}
和我的存储库如下:
@Repository
public interface MetadataMerchantRepository extends CosmosRepository<MetadataMerchant, String> {
List<MetadataMerchant> findByName(String name);
List<MetadataMerchant> findByDescriptorsContains(List<String> descriptors);
}
findByName
正常运行,换句话说,这将返回一个结果:
repository.findByName("Test Merchant");
我希望能够查询具有特定MetadataMerchant
的{{1}}。我尝试使用descriptor
似乎无效,它总是返回空结果。
如何使用findByDescriptorsContains(List<String> descriptors)
和Spring Data,如何通过集合中的值查询实体?我希望能够找到所有spring-data-cosmosdb
包含特定值的MetadataMerchant
。.
在Azure Cosmos DB Data Explorer中,以下查询有效:
descriptors
我从MongoDB示例中窃取了该想法(请参见SELECT * FROM MetadataMerchants m WHERE EXISTS(SELECT VALUE d FROM d IN m.descriptors WHERE d = 'a-descriptor-here')
)