Я пытаюсь загрузить настроенное значение в поле @CreatedBy
в моем AuditFields
объекте.Всякий раз, когда я делаю запрос POST
, я ожидаю, что Spring Data Rest будет использовать этот AuditorAwareImpl
и передать строку TestPrincipal
в поле @CreatedBy
.
На самом деле я получаю 409 Conflict, SQL Constraint created_by is null
.
BaseEntity
должен использовать @MappedSuperclass
, но я думаю, что для передачи значения ему нужна функциональность @Entity
до @CreatedBy
?
Любые указатели здесь будут с благодарностью.
AuditEntity
@Embeddable
@Access(AccessType.FIELD)
@Data
@EntityListeners(AuditingEntityListener.class)
public class AuditFields implements Serializable {
@CreatedBy
@Column(name="CREATED_BY", length=256)
private String createdBy;
@Column(name="CREATED_TIMESTAMP")
private LocalDateTime createTimestamp = LocalDateTime.now();
...
...
}
BaseEntity
@MappedSuperclass
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class BaseEntity implements Serializable {
@Column(name="RECORD_STATUS_CODE", length=1)
@EqualsAndHashCode.Exclude
private String myStatus;
@Version
@Column(name="VERSION_NUMBER")
@Setter(AccessLevel.PROTECTED)
@EqualsAndHashCode.Exclude
private Long versionNumber;
@Embedded
@EqualsAndHashCode.Exclude
private AuditEntity auditFields;
}
AuditorAwareImpl
@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditorAwareImpl {
@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAware<String>() {
@Override
public Optional<String> getCurrentAuditor() {
return Optional.of("TestPrincipal");
}
};
}
}