diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
index 1393a472c8a8e982e4e74a18dcc0d1e6704da0f3..3ccc22f2a816ced982d4fd8cf1bc58074ed80dc2 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
@@ -2,11 +2,13 @@ package lcsb.mapviewer.persist.dao;
 
 import java.util.List;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Root;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.hibernate.Session;
-import org.hibernate.criterion.Projections;
-import org.hibernate.criterion.Restrictions;
 import org.hibernate.dialect.Dialect;
 import org.hibernate.query.Query;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -165,12 +167,15 @@ public abstract class BaseDao<T> {
    * @return number of all elements in database
    */
   public long getCount() {
-    if (removableColumn == null) {
-      return (Long) getSession().createCriteria(this.clazz).setProjection(Projections.rowCount()).uniqueResult();
-    } else {
-      return (Long) getSession().createCriteria(this.clazz).add(Restrictions.eq(removableColumn, false))
-          .setProjection(Projections.rowCount()).uniqueResult();
+    CriteriaBuilder builder = getSession().getCriteriaBuilder();
+    CriteriaQuery<Long> criteria = builder.createQuery(Long.class);
+    Root<T> root = criteria.from(this.clazz);
+
+    if (removableColumn != null) {
+      criteria.where(builder.equal(root.get(removableColumn), false));
     }
+    criteria.select(builder.count(root));
+    return getSession().createQuery(criteria).getSingleResult();
   }
 
   /**