Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

3.2K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda