在mongo集合上使用时,Spring数据版本注释不会递增

我正在使用带有mongodb的spring数据来存储二进制数据,例如图像等。我想维护一个版本字段,以附加到url以欺骗浏览器缓存图像。

请参阅下面的文档基类:

import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; import org.springframework.data.mongodb.core.index.Indexed; public abstract class BaseDocument { @Id @Indexed(unique=true) protected long id; protected byte[] data; protected String mimeType; protected String filename; protected String extension; @Version private Long version; 

我还有一个包装MongoOperations的存储库来保存我的文档。

 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class DocumentRepository implements IDocumentRepository { @Autowired private MongoOperations mongoTemplate; @Override public  void saveDocument(D document) { mongoTemplate.save(document); } 

为了实现版本控制,我做了一些狩猎,发现有一个@Version注释为spring mongo,但是已被弃用。 然后我发现应该使用spring数据@Version注释。 所以我继续使用弹簧数据@Version注释。

我期望发生的是每次保存文档时我的版本字段都会增加。 我多次覆盖同一个文档,但我的版本字段并没有像我期望的那样增加。

我做错了什么或者我还需要做些什么吗?

要使用@Version注释,您需要通过在应用程序上下文中添加一行来在Spring Data MongoDB中启用审计: