Я пытаюсь использовать подход на основе аннотаций для аудита моего документа 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 подход на основе аннотаций?