diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index ea2f62967d831b915bf3b0a9041f9aef832a4075..769ee7457e4b4e102cbdc4c0ac53265e2d2ca48c 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"),