2017-07-10 11 views
1

Ich habe folgende Spring Boot Beispielanwendung. Die verrückte Sache ist, wenn ich @EnableMongoAuditing Annotation auf SampleApplication Bean hinzufügen würde lastModifiedDate würde von createDate gefüllt würde nicht. Warum das? Ich suchte im Internet und viele Leute hatten Probleme beim Leeren createDate während eines Updates, aber ich habe kein Update.Spring Daten füllt @LastModifiedDate von not @ CreatedDate

Dokumentklasse:

@Document 
public class SampleBean implements Persistable<String> { 

    @Id 
    public String id; 
    @CreatedDate 
    public LocalDateTime createDate; 
    @LastModifiedDate 
    public LocalDateTime lastModifiedDate; 

    public String name; 

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

    @Override 
    public boolean isNew() { 
     return id != null; 
    } 
} 

Repository-Schnittstelle:

@Repository 
public interface SampleBeanRepository extends MongoRepository<SampleBean, String> { 
} 

Ruhe Controller:

@RestController 
public class WebService { 

    @Autowired 
    private SampleBeanRepository repository; 

    @RequestMapping("/insert") 
    public String insert() { 
     SampleBean sampleBean = new SampleBean(); 
     sampleBean.name = "Prefix" + new Random().nextInt(1000); 
     repository.insert(sampleBean); 
     return "done"; 
    } 

    @RequestMapping("/") 
    public Collection<SampleBean> home() { 
     return repository.findAll(); 
    } 

} 

Anwendung Config:

@SpringBootApplication 
@EnableMongoAuditing 
public class ApplicationConfig { 

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

Antwort

2

Ihre isNew() Strategie ist der Schuldige hier. Da Sie die Bedingung id != null eingestellt haben. Jedes Mal, wenn Ihr SampleBean erstellt wird, wird keine ID wie in Ihrem Code-Snippet gesetzt, die isNew() Methode wird als falsch zurückgegeben, daher wird nur LastModifiedDate vom Framework gesetzt. Ändern Sie entweder die isNew() Methodenkondition zu return id == null; oder implementieren Sie nicht die persistable Schnittstelle, egal welche Standardstrategie für isNew gewählt wird.

+0

Yeap das war der Blödsinn, den ich gemacht habe, danke. –

Verwandte Themen