Couchbase - автоматическая генерация ключа с заданным пользователем суффиксом - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу сохранить объект сотрудника в couchbase, используя весеннюю загрузку Java.Я использую реактивный драйвер водителя.Мое требование - сохранить объект employee с employeeId с суффиксом жестко закодированной строки "-EMPLOYEETYPE".

Пример: объект в couchbase из Java-приложения:

{ "employeeId" : "12345", "lname" :"ltest", "fname" : "ftest"}

При сохранении в базу диванов,ключ должен быть сгенерирован как

"12345-EMPLOYEETYPE"

Ниже код не работает, пожалуйста, дайте мне знать, как его достичь. Примечание: я использую lombok, поэтому нет геттеров и сеттеров.

@Document
public final class Employee {

        @Id @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES,delimiter="-EMPLOYEETYPE")
        private String id;

        @IdAttribute
        private String employeeId;
}

1 Ответ

0 голосов
/ 27 февраля 2019

Нашел решение.Нам нужно создать переменную экземпляра с присвоенным ему строковым литералом суффикса и аннотировать с помощью @IdSuffix.(Для префикса @IdPrefix).Это поле не будет сохранено в базе данных и используется только для создания идентификатора документа.

@Document
public final class Employee {

    @Id @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES,delimiter="-")
    private String id;

    @IdAttribute
    private String employeeId;

    @IdSuffix
    private String suffix = "EMPLOYEETYPE";
}

Справочный документ: https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/#couchbase.autokeygeneration.configuration

...