问题描述
我的实体如下:
@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')
)
- https://github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Person.java
- https://github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)