API SQL Azure Cosmos — Как сохранить пользовательский объект в виде @PartitionKey

#java #azure-sql-database #azure-cosmosdb #azure-java-sdk

Вопрос:

Можно ли сохранить пользовательское POJO в виде строки Json с помощью @PartitionKey с помощью Java 8.? Это да, пожалуйста, скажите мне, как .

 import com.azure.spring.data.cosmos.core.mapping.PartitionKey;

    @PartitionKey
        private Result resu<
 

результат будет иметь такое значение, как {"resultID":"1","secret":"my secret"}

Комментарии:

1. Вы можете настроить вложенный путь

2. не могли бы вы поподробнее рассказать об этом ? фрагменты кода будут полезны

3. В Cosmos DB невозможно указать объект в качестве ключа раздела. Однако существует работа по обеспечению разбиения на разделы для API Core (SQL), который позволяет указывать до 3 свойств, которые действуют как иерархия для ваших разделов. Если вам интересно, есть приватный предварительный просмотр этого. Зарегистрироваться можно здесь. aka.ms/cosmos-subpartitioning-signup

4. @MarkBrown, спасибо ! вот как я решил эту проблему на данный момент (мои ответы ниже).

Ответ №1:

Как справедливо прокомментировал @Mark Brown, я понял , что — «Невозможно указать объект в качестве ключа раздела в Cosmos DB», однако я сделал путь к вложенному ключу раздела, вот так:

 import com.azure.spring.data.cosmos.core.mapping.Container;

    @Container(containerName = "DcLogins", partitionKeyPath = "/result/company",autoScale = true)
    public class DcLogins {
     private Result resu<
 
    public class Result {
     private String company;
 

Просто хочу отметить, что в partitionKeyPath , result объект Result is и company переменная in должны соответствовать объекту json, с которым вы имеете дело {"company":"sapcustid","secret":"my secret"}