From 1c45fb44710226901134585897d6a166ff87eb42 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 22 May 2019 20:01:34 +0200
Subject: [PATCH] deprecated criteria api replaced

---
 .../lcsb/mapviewer/persist/dao/BaseDao.java   | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

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 1393a472c8..3ccc22f2a8 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();
   }
 
   /**
-- 
GitLab