0

What is the correct way to include and use JPA Entity Lifecycle Events when using spring-boot-starter-data-mongodb?

my pom.xml dependencies

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

My classpath doesn't see to have any of the following JPA annotations:

@PrePersist
@PostPersist
@PreRemove
@PostRemove
@PreUpdate
@PostUpdate
@PostLoad
Anand Rockzz
  • 6,072
  • 5
  • 64
  • 71

1 Answers1

0

Mongo has its own events documented @ #Entity Callbacks.

Example:

class DefaultingEntityCallback implements BeforeSaveCallback<Person>, Ordered {      

    @Override
    public Object onBeforeSave(Person entity, String collection) {                   

        if(collection == "user") {
            return // ...
        }

        return // ...
    }

    @Override
    public int getOrder() {
        return 100;                                                                  
    }
}

Following Functional interfaces available:

  • org.springframework.data.mongodb.core.mapping.event.AfterConvertCallback

  • org.springframework.data.mongodb.core.mapping.event.AfterSaveCallback

  • org.springframework.data.mongodb.core.mapping.event.BeforeConvertCallback

  • org.springframework.data.mongodb.core.mapping.event.BeforeSaveCallback

  • org.springframework.data.mongodb.core.mapping.event.ReactiveAfterConvertCallback

  • org.springframework.data.mongodb.core.mapping.event.ReactiveAfterSaveCallback

  • org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeConvertCallback

  • org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeSaveCallback

Anand Rockzz
  • 6,072
  • 5
  • 64
  • 71