How to enable auditing for MongoDB via Annotations in Spring

14,146

Solution 1

Because you are not using configuration via XML, I believe you are using annotations. You own a class like this:

public class MongoConfig extends AbstractMongoConfiguration {...}

Thus, in addition to the annotations you should already have, add: @EnableMongoAuditing

Your configuration class will look like this now:

@Configuration
@EnableMongoRepositories(basePackages="...")
@EnableMongoAuditing
public class MongoConfig extends AbstractMongoConfiguration {...}

I hope this helps!

Solution 2

That's all you need. No subclasses or other stuff.

@Configuration
@EnableMongoAuditing
public class AnyCongig {}
Share:
14,146
Julio
Author by

Julio

Updated on June 15, 2022

Comments

  • Julio
    Julio almost 2 years

    I wanted to enable some auditing features, such as @CreatedDate. I am not using Spring xml configuration file, so I cannot add mongo:auditing to Spring configuration. I was wondering if there was an alternative way of enable auditing. The following code is the model for user. But whenever I create a user, the date is not stored in the document, so the auditing it's not working. Could someone give me some help?

    @Document(collection = "user")
    public class User {
        @Id
        private String id;
        @Indexed(unique = true)
        private String email;
        private String name;
        @CreatedDate
        private Date date;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(Date date) {
            this.date = date;
        }