Аудит на основе аннотаций для Spring-Data-elasticsearch?

Я пытаюсь использовать подход на основе аннотаций для аудита моего документа elasticsearch с помощью spring-data-elasticsearch. Я следовал руководству JPA при реализации моих классов / настроек.

Мой код выглядит так:

@Configuration
@EnableJpaAuditing
public class SpringSecurityAuditorAwareConfiguration {

    @Bean
    public AuditorAware<String> auditorProvider() {
        return new SpringSecurityAuditorAware();
    }

}

public class SpringSecurityAuditorAware implements AuditorAware<String> {

    public Optional<String> getCurrentAuditor() {

        return Optional.ofNullable(SecurityContextHolder.getContext())
                .map(SecurityContext::getAuthentication)
                .filter(Authentication::isAuthenticated)
                .map(Authentication::getPrincipal)
                .map(User.class::cast)
                .map(User::getUsername);
    }
}

@Document(indexName =  "myEntity", type = "myEntityType")
public class MyEntity {

    @Id
    private String id;

    @CreatedBy
    protected String createdBy;

    @CreatedDate
    protected OffsetDateTime createdDate;

    @LastModifiedBy
    protected String lastModifiedBy;

    @LastModifiedDate
    protected OffsetDateTime lastModifiedDate;

    public void setDictionaryId(DictionaryId dictionaryId) {
        this.dictionaryId = dictionaryId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public OffsetDateTime getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(OffsetDateTime createdDate) {
        this.createdDate = createdDate;
    }

    public String getLastModifiedBy() {
        return lastModifiedBy;
    }

    public void setLastModifiedBy(String lastModifiedBy) {
        this.lastModifiedBy = lastModifiedBy;
    }

    public OffsetDateTime getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(OffsetDateTime lastModifiedDate)     {
        this.lastModifiedDate = lastModifiedDate;
    }

}

К сожалению, когда я сохраняю новый экземпляр, свойства всегда имеют значение null. Поддерживает ли spring-data-elasticsearch подход на основе аннотаций?


person MitchWebber    schedule 26.11.2019    source источник


Ответы (1)


Изменить:

Это реализовано с версии 4.0, выпущенной в мае 2020 года.

Исходный ответ:

Нет, в настоящее время это не поддерживается в Spring Data Elasticsearch.

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

person P.J.Meisch    schedule 28.11.2019