Spring Boot JPA@CreatedDate @LastModifiedDate not being populated when saving the object

The AuditingEntityListener methods are called in the @PrePersist and @PreUpdate phase.

This means they are called just before the insert or update SQL statements are executed.

Read more about JPA events in the Hibernate doc: https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#events-jpa-callbacks

Unit Tests

When using in Tests you have to enable auditing as well on the test

public class EntityListenerTest {

I had similar issue (Spring Boot 2.2.1 and JUnit5) with null values. Adding @EnableJpaAuditing to test class did not work.

My example (did not copy everything):

public class Auditable<U> {

    @Column(name = "created_by", nullable = false)
    private U createdBy;

    @Column(name = "created", nullable = false)
    private OffsetDateTime created;

and respective class:

public class SurveyRecord extends Auditable<String> implements Serializable {

I had following configuration for auditing:

@EnableJpaAuditing(auditorAwareRef = "auditorProvider", dateTimeProviderRef = "auditingDateTimeProvider")
public class JpaAuditingConfiguration {

    @Bean(name = "auditingDateTimeProvider")
    public DateTimeProvider dateTimeProvider() {
        return () -> Optional.of(OffsetDateTime.now());

    public AuditorAware<String> auditorProvider() {

To get @CreatedBy and @CreatedDate working inside test only @Import was needed

class SurveyRecordRepositoryTest {

Used references:

  • https://springbootdev.com/2018/03/13/spring-data-jpa-auditing-with-createdby-createddate-lastmodifiedby-and-lastmodifieddate/

  • https://github.com/spring-projects/spring-boot/issues/10743#issuecomment-416777423