2017-04-07 1 views
1

Je suis en train spring-data-rest avec spring-data-mongo et beaucoup de choses fonctionnent admirablement hors de la boîte, y compris le soutien pour eTag domaine. @EnableMongoAuditing Les annotations fonctionnent très bien lorsque le document est créé, les champs @CreatedDate et @LastModifiedDate sont définis.champ @CreatedDate mises à jour dans les données du printemps mongodb avec des données de printemps repos

Le problème est que le champ @CreatedDate est défini sur null pendant les mises à jour. J'ai trouvé un problème non résolu Mongo Auditing:@CreatedDate field gets set to null on updates with Spring Data Rest avec la solution suggérée d'utiliser l'annotation @JsonIgnore qui ne fonctionne pas pour moi.

Il y avait aussi un similar question ici il y a quelques années sans solution.

J'utilise des versions 1.10.1RELEASE du printemps-données-mongo et 2.6.1Release de repos ressort données

Y at-il une solution à ce problème?

Répondre

0

Créé le sens de la marque que pour les entités immuables (que vous ne vas pas faire la mise à jour)

Si l'entité est actualisable, aimerait utiliser uniquement la dernière modification à la place

Pour tout autre cas probablement faire usage de sens un certain historique audition log ..

@Entity 
    // ... 
    public class MyEntity { 
    // ... 
    @CreatedDate 
    private LocalDateTime createdAt; // modifiedAt 

    @PreUpdate 
    public void fixSpringDataRestNullDate() { 
     createdAt = LocalDateTime.now(); 
    } 
    }