画像などのバイナリデータを保存するために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 アノテーションを使用しました。
私が期待しているのは、ドキュメントを保存するたびにバージョン フィールドがインクリメントされることです。同じドキュメントを何度か上書きしていますが、バージョン フィールドが期待どおりにインクリメントされていません。
何か間違ったことをしていますか、それとも何か追加する必要がありますか?