我正在使用带有 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 <D extends BaseDocument> void saveDocument(D document) {
mongoTemplate.save(document);
}
为了实现版本控制,我四处寻找,发现 spring mongo 有一个 @Version 注释,但已被弃用。然后我发现应该改用spring数据@Version注释。所以我继续使用spring数据@Version注释。
我期望发生的是每次保存文档时我的版本字段都会增加。我多次覆盖同一个文档,但我的版本字段没有像我预期的那样增加。
我做错了什么还是我需要做一些额外的事情?