Spring проверка данных mongodb не работает.. (Конфигурация Java)

В настоящее время я использую Spring data mongodb 1.6.0-RELEASE, и я знаю, что у него есть функция аудита. я добавьте аннотацию @EnableMongoAuditing поверх моего класса конфигурации. И мой bean ниже:

@Document
public class MyBean{

@Id
private AnotherCustomBean anotherCustomBean = new AnotherCustomBean();

@CreatedDate
private Date creationDate;

@LastModifiedDate
private Date lastModifiedDate;

.
.
.

Когда я сохраняю этот bean с mongoTemplate.save(myBean);, он не устанавливает дату создания и последнюю измененную дату... И у нее нет ошибок.

Любая помощь будет оценена,

Спасибо.

Ответ 1

Фактическая проблема заключалась в аннотации @Id. Чтобы правильно использовать аудит spring, вам необходимо определить ObjectId (null для новых сохраненных объектов), то есть как spring решить @LastModifiedDate и @CreatedDate

Впоследствии я нашел способ сделать так, чтобы пользовательский beans на @Id использовал Auditable<String,String>

Благодаря @Felby:

Я обнаружил, что поле @Id должно быть нулевым во время сохранения() только для аннотаций @CreatedDate и @CreatedBy. Поля @LastModifiedDate и @LastModifiedBy работали независимо от было ли поле @Id инициализировано или нет.

Ответ 2

Я точно не знаю, но попробуйте добавить joda-time в classpath для использования аннотаций, связанных с датой.

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.2</version>
</dependency>