【问题标题】:Can we increment version of MongoDB document version manually in Spring Data MongoDB?我们可以在 Spring Data MongoDB 中手动增加 MongoDB 文档版本吗?
【发布时间】:2021-02-14 16:25:44
【问题描述】:

我们可以在 ElasticSearch 实体中使用 versionType = EXTERNAL, EXTERNAL_GTE 来管理实体的版本,@Version 注释字段将由开发人员在 spring-data-elasticsearch 中手动递增。

因此,当我们发送任何版本较小的文档更新时,将抛出 VersionConflictEngineException,但它会让您发送大于或等于当前实体版本(在 EXTERNAL_GTE 情况下)的任何版本。

在spring-data-mongodb中是否有机会以这种方式管理mongoDB文档的版本?

【问题讨论】:

    标签: java mongodb spring-boot spring-data-mongodb spring-data-elasticsearch


    【解决方案1】:

    根据documentation,可以使用@Version注解。请注意,我所指的类是:org.springframework.data.annotation.Version,而不是 JPA。

    【讨论】:

    • 但我想手动管理。根据文档:当您要更新文档时,它应该是相同的值,否则将抛出 OptimisticLockingFailureException。我只想以 ElasticSearch 方式设置它。
    • 那么我建议你创建自己的注解,创建一个实现 onBeforeSave 方法的事件监听器。在这种方法中,您可以使用反射来检查带有您自己的注释的字段并进行相应的验证。也许这是一个复杂的解决方案,但我不知道其他方式。
    猜你喜欢
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多