Spring Data MongoDB Аннотация @CreatedDate не работает, когда идентификатор назначается вручнуюJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Data MongoDB Аннотация @CreatedDate не работает, когда идентификатор назначается вручную

Сообщение Anonymous »

Я пытаюсь использовать аудит для сохранения dateCreated и dateUpdated в моих объектах, но поскольку я задаю ID вручную, возникает дополнительная работа.

Следуя предложению Оливера Гирке в DATAMONGO-946
Я пытаюсь понять, как его правильно реализовать.

В оригинале плакат в задаче Jira выше, я скачал пример отсюда https://github.com/spring-guides/gs-acc ... ongodb.git и немного изменил его:

Код: Выделить всё

package hello;

import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.domain.Persistable;

import java.util.Date;

public class Customer implements Persistable {
@Id
private String id;
@CreatedDate
private Date createdDate;
@LastModifiedDate
private Date lastModifiedDate;
private String firstName;
private String lastName;
private boolean persisted;

public Customer() {
}

public Customer(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}

public void setPersisted(boolean persisted) {
this.persisted = persisted;
}

@Override
public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

@Override
public boolean isNew() {
return !persisted;
}

@Override
public String toString() {
return String.format(
"Customer[id=%s, createdDate=%s, lastModifiedDate=%s, firstName='%s', lastName='%s']",
id, createdDate, lastModifiedDate, firstName, lastName);
}
}
и

Код: Выделить всё

package hello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.mongodb.config.EnableMongoAuditing;

@SpringBootApplication
@EnableMongoAuditing
public class Application implements CommandLineRunner {

@Autowired
private CustomerRepository repository;

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

@Override
public void run(String... args) throws Exception {

repository.deleteAll();

// create a customer
Customer c = new Customer("Alice", "Smith");
c.setId("test_id");

// save a customer
repository.save(c);

// fetch all customers
System.out.println("Customers found with findAll():");
System.out.println("-------------------------------");
for (Customer customer : repository.findAll()) {
System.out.println(customer);
}
System.out.println();

// create another customer with same id
c = new Customer("Bob", "Smith");
c.setId("test_id");
c.setPersisted(true);
repository.save(c);

// fetch all customers
System.out.println("Customers found with findAll():");
System.out.println("-------------------------------");
for (Customer customer : repository.findAll()) {
System.out.println(customer);
}
System.out.println();
}
}
и результат выполнения такой:

Код: Выделить всё

Customers found with findAll():
-------------------------------
Customer[id=test_id, createdDate=Wed Feb 24 00:43:47 WITA 2016, lastModifiedDate=Wed Feb 24 00:43:47 WITA 2016, firstName='Alice', lastName='Smith']

Customers found with findAll():
-------------------------------
Customer[id=test_id, createdDate=null, lastModifiedDate=Wed Feb 24 00:43:47 WITA 2016, firstName='Bob', lastName='Smith']

Код: Выделить всё

createdDate
становится нулевым после обновления объекта.

Что мне здесь не хватает? И как правильно реализовать Persistable, чтобы аудит работал правильно?

Подробнее здесь: https://stackoverflow.com/questions/355 ... assigned-m
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Весна аннотации @CreatedDate с Liquibase
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Spring Data Mongo @Column эквивалентная аннотация (@Property?)
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Аннотация Spring Data JPA @Query принимает запрос как строку, но не как запрос
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Аннотация Spring Data JPA @Query принимает запрос как строку, но не как запрос
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Android Monhofit Post Type Data Data Wations Data Null Null
    Anonymous » » в форуме Android
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»