Add purge to history...

This commit is contained in:
Paulo Gustavo Veiga
2013-03-24 22:49:55 -03:00
parent 0188e15a92
commit f961ae578c
5 changed files with 45 additions and 11 deletions

View File

@@ -66,4 +66,6 @@ public interface MindmapManager {
public MindMapHistory getHistory(int historyId);
void updateCollaboration(@NotNull Collaboration collaboration);
void removeHistory(int mapId);
}

View File

@@ -57,9 +57,10 @@ public class MindmapManagerImpl
final Criteria hibernateCriteria = getSession().createCriteria(MindMapHistory.class);
hibernateCriteria.add(Restrictions.eq("mindmapId", mindmapId));
hibernateCriteria.addOrder(Order.desc("creationTime"));
// This line throws errors in some environments, so getting all history and taking firsts 10 records
hibernateCriteria.setMaxResults(30);
return hibernateCriteria.list();
return hibernateCriteria.list();
}
@Override
@@ -72,6 +73,26 @@ public class MindmapManagerImpl
getHibernateTemplate().save(collaboration);
}
/**
* Purge history map ....
* @param mapId
*/
@Override
public void removeHistory(int mapId) {
final Criteria hibernateCriteria = getSession().createCriteria(MindMapHistory.class);
hibernateCriteria.add(Restrictions.eq("mindmapId", mapId));
hibernateCriteria.addOrder(Order.desc("creationTime"));
final List<MindMapHistory> historyList = hibernateCriteria.list();
int i = 0;
for (MindMapHistory history : historyList) {
if (i > 20) {
getHibernateTemplate().delete(history);
}
i++;
}
}
@Override
public List<Mindmap> search(MindMapCriteria criteria, int maxResult) {
final Criteria hibernateCriteria = getSession().createCriteria(Mindmap.class);