From 0d87f944a614f4f2f9494fda55537a03fea54d9e Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Fri, 6 Feb 2015 22:06:03 +0100 Subject: [PATCH] Cache single question objects Note that due to the way it is currently implemented, we have to clear the whole cache once a set of questions published or unpublished in bulk. --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 00028f5b..781801e5 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -457,6 +457,7 @@ public class CouchDBDao implements IDatabaseDao { return database; } + @CachePut(value = "questions", key="#question") @Override public final Question saveQuestion(final Session session, final Question question) { final Document q = toQuestionDocument(session, question); @@ -514,6 +515,7 @@ public class CouchDBDao implements IDatabaseDao { return q; } + @CachePut(value = "questions") @Override public final Question updateQuestion(final Question question) { try { @@ -589,6 +591,7 @@ public class CouchDBDao implements IDatabaseDao { return null; } + @Cacheable("questions") @Override public final Question getQuestion(final String id) { try { @@ -698,6 +701,7 @@ public class CouchDBDao implements IDatabaseDao { return collectQuestionIds(view); } + @CacheEvict(value = "questions") @Override public final void deleteQuestionWithAnswers(final Question question) { try { @@ -1536,6 +1540,7 @@ public class CouchDBDao implements IDatabaseDao { publishQuestions(session, publish, questions); } + @CacheEvict(value = "questions", allEntries = true) @Override public void publishQuestions(final Session session, final boolean publish, List<Question> questions) { for (final Question q : questions) { -- GitLab