From 45a0ce15be2122e29bf87ec85aa44d417cdc12c5 Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Tue, 28 Jul 2015 11:35:46 +0200 Subject: [PATCH] Fix for #16884: Properly refresh question object cache --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index ea2f6296..769ee745 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -539,7 +539,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "lecturequestions", key = "#session", condition = "#question.getQuestionVariant().equals('lecture')"), @CacheEvict(value = "preparationquestions", key = "#session", condition = "#question.getQuestionVariant().equals('preparation')"), @CacheEvict(value = "flashcardquestions", key = "#session", condition = "#question.getQuestionVariant().equals('flashcard')") }, - put = {@CachePut(value = "questions", key = "#question")}) + put = {@CachePut(value = "questions", key = "#question._id")}) @Override public Question saveQuestion(final Session session, final Question question) { final Document q = toQuestionDocument(session, question); @@ -613,7 +613,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "lecturequestions", allEntries = true, condition = "#question.getQuestionVariant().equals('lecture')"), @CacheEvict(value = "preparationquestions", allEntries = true, condition = "#question.getQuestionVariant().equals('preparation')"), @CacheEvict(value = "flashcardquestions", allEntries = true, condition = "#question.getQuestionVariant().equals('flashcard')") }, - put = {@CachePut("questions")}) + put = {@CachePut(value = "questions", key = "#question._id")}) @Override public Question updateQuestion(final Question question) { try { @@ -804,7 +804,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } /* TODO: Only evict cache entry for the question's session. This requires some refactoring. */ - @Caching(evict = { @CacheEvict("questions"), + @Caching(evict = { @CacheEvict(value = "questions", key = "#question._id"), @CacheEvict(value = "skillquestions", allEntries = true), @CacheEvict(value = "lecturequestions", allEntries = true, condition = "#question.getQuestionVariant().equals('lecture')"), @CacheEvict(value = "preparationquestions", allEntries = true, condition = "#question.getQuestionVariant().equals('preparation')"), @@ -819,7 +819,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } } - @Caching(evict = { @CacheEvict("questions"), + @Caching(evict = { @CacheEvict(value = "questions", allEntries = true), @CacheEvict(value = "skillquestions", key = "#session"), @CacheEvict(value = "lecturequestions", key = "#session"), @CacheEvict(value = "preparationquestions", key = "#session"), -- GitLab