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>