java - MongoTemplate 实体模型上的 @Version 注解

标签 java spring mongodb spring-data

有时我会遇到奇怪的OptimisticLockingException。上网冲浪,我发现它与@Version注释有点相关。我尝试从基本模型类中删除以下字段:

@Version
private Long version;

冒烟测试表明系统没有任何问题。但是我想知道在 mongo 模型类中没有声明版本字段是否有任何问题?

谢谢, 绿色

最佳答案

您可能遇到一些并发问题。当对同一实体进行并发更改并且第二个更改收到该实体刚刚被其他人更新的通知时,会引发该异常。 事实上,版本注释适用于每次实体更新后都会递增的字段。如果您尝试更新实体,但其他人刚刚对同一实体提交了更改,则会出现异常。 通过删除 @Version 注释,您只是没有版本字段,因此不会出现问题,但实体仍然以可能不合适的方式(即不受监管)发生更改。

关于java - MongoTemplate 实体模型上的 @Version 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127936/

相关文章:

spring - 如何解决转换问题java.lang.ClassCastException : $Proxy cannot be cast to NotEmpty which is annotation

mongodb - 如何为在kubernetes集群上运行的Kafka Connect配置MongoDB官方源连接器

mongoDB 2.2.1 - 数据库无效

如果没有文档,MongoDB 聚合返回计数为 0

java - 合并排序给出 IndexOutOfBoundsException

java - 是否有多个 JdbcTemplate 实例?

java - 插入二叉树问题的方法

spring - 如何让证书进入X509过滤器(Spring Security)?

java - 方法空间不足?

spring - spring计划任务和spring批处理作业有什么区别