Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

3.2K
Views
auditoría mongodb en spring boot para guardar createdDate, lastModifiedDate, createdBy, lastModifiedBy

Estoy usando Spring Boot, por lo tanto, no estoy usando ningún archivo xml para las configuraciones. Lo que tengo que hacer es habilitar MongoAuditing para guardar createdDate, lastModifiedDate, etc. mientras guardo datos usando MongoRepositories.

mi clase modelo

 @Component @Document(collection = "CAPPING") public class TemporaryCapping extends BaseEntity { @Field("contract_id") private BigInteger contractId; @Field("period_id") private BigInteger periodId; @Field("user_id") private BigInteger userId; @Field("amount") private Double amount; @Field("type_of_capping") private TypeOfCapping typeOfCapping; public BigInteger getContractId() { return contractId; } public void setContractId(BigInteger contractId) { this.contractId = contractId; } public BigInteger getPeriodId() { return periodId; } public void setPeriodId(BigInteger periodId) { this.periodId = periodId; } public BigInteger getUserId() { return userId; } public void setUserId(BigInteger userId) { this.userId = userId; } public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } public TypeOfCapping getTypeOfCapping() { return typeOfCapping; } public void setTypeOfCapping(TypeOfCapping typeOfCapping) { this.typeOfCapping = typeOfCapping; } } public class BaseEntity implements Serializable{ @Id @Indexed(unique = true) private BigInteger id; @CreatedDate private DateTime createdDate; @Field("modified_date") private BigInteger modifiedDate; public BigInteger getId() { return id; } public void setId(BigInteger id) { this.id = id; } public DateTime getCreatedDate() { return createdDate; } public void setCreatedDate(DateTime createdDate) { this.createdDate = createdDate; } public BigInteger getModifiedDate() { return modifiedDate; } public void setModifiedDate(BigInteger modifiedDate) { this.modifiedDate = modifiedDate; }

He usado la anotación @CreateDate para guardar createDate. y he usado la dependencia de jodatime para DateTime

 <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.7</version> </dependency>

spring-data-mongodb también se agrega en las dependencias.

Esta es mi clase de aplicación principal.

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

¿Dónde me equivoco en esta implementación ya que la fecha no se guarda en la base de datos? También sé que para guardar @createdBy necesita escribir el bean AuditorAware, pero por ahora solo estoy tratando de guardar createdBy.

¿Dónde se debe usar @EnableMongoAuditing?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

En mi aplicación la configuro a través de código Java. Uso @EnableMongAuditing de esta manera y también creo conversos para ZonedDateTime.

 @Configuration @EnableMongoAuditing @EnableMongoRepositories(basePackages = { BASE_PACKAGE }) public class MongoConfiguration extends AbstractMongoConfiguration { public static final String BASE_PACKAGE = "package.with.aggregates"; @Value("${spring.data.mongodb.uri}") private String mongoUri; @Value("${spring.data.mongodb.database}") private String databaseName; @Override protected String getDatabaseName() { return databaseName; } @Override public Mongo mongo() throws Exception { return new MongoClient(new MongoClientURI(mongoUri)); } // Here you must add converters to Joda datetypes. In my solution is ZonedDateTime @Override public CustomConversions customConversions() { List<Converter<?, ?>> converterList = new ArrayList<>(); converterList.add(new DateToZonedDateTimeConverter()); converterList.add(new ZonedDateTimeToDateConverter()); return new CustomConversions(converterList); } @Override protected String getMappingBasePackage() { return BASE_PACKAGE; } }
over 4 years ago · Santiago Trujillo Report

0

@EnableMongoAuditing en realidad se puede colocar en cualquier lugar de las configuraciones (junto a la anotación @Configuration)

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!