在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中启用审计:
- java变量本身是否安全? 更新变量时?
- 将LinkedHashMap 转换为Java中的对象
- EnableAutoConfiguration spring注释如何工作?
- 带有List 方法的Java通用接口上的编译器错误
- Ajax请求 – 在Spring Controller上调用不同的方法
- 将值添加到DynamicTimeSeriesCollection中的指定系列
- java.text.ParseException:无法解析的日期:yyyy-MM-dd HH:mm:ss.SSSSSS
- 当要解析的元素是json字符串的元素时,使用gson解析json的最简单方法是什么?
- 从Eclipse快速调试Flex / Java Web应用程序?