【问题标题】:spring-boot-starter-data-mongodb doesn't seem to include persistence-api to use @PrePersist @PreUpdatespring-boot-starter-data-mongodb 似乎不包含要使用 @PrePersist @PreUpdate 的持久性 API
【发布时间】:2020-12-08 06:48:12
【问题描述】:

在使用spring-boot-starter-data-mongodb时包含和使用JPA Entity Lifecycle Events的正确方法是什么?

我的 pom.xml 依赖项

    <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>

我的类路径没有看到以下任何 JPA 注释:

@PrePersist
@PostPersist
@PreRemove
@PostRemove
@PreUpdate
@PostUpdate
@PostLoad

【问题讨论】:

  • 为什么要包含 JPA 依赖项? JPA和MongoDB没关系?

标签: spring-boot spring-data-jpa spring-data spring-boot-starter


【解决方案1】:

Mongo 有自己的事件记录在 @#Entity Callbacks

例子:

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;                                                                  
    }
}

以下可用的功能接口:

  • 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2021-11-11
    相关资源
    最近更新 更多