关于MongoTemplate实体模型的@Version注释

时间:2014-08-04 21:34:11

标签: java spring mongodb spring-data

有时我会变得奇怪OptimisticLockingException。浏览互联网,我发现它与@Version注释有关。我试图从基础模型类中删除以下字段:

@Version
private Long version;

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

谢谢, 绿色

1 个答案:

答案 0 :(得分:2)

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