Mercurial > hg > openmind
diff src/main/java/org/mpi/openmind/repository/services/AbstractPersistenceService.java @ 75:e0be7c0030f5
cleanup and better comments.
author | casties |
---|---|
date | Thu, 23 Feb 2017 19:05:47 +0100 |
parents | 7acd7564e394 |
children | 4c9ceb28cfd0 |
line wrap: on
line diff
--- a/src/main/java/org/mpi/openmind/repository/services/AbstractPersistenceService.java Fri Feb 03 12:56:28 2017 +0100 +++ b/src/main/java/org/mpi/openmind/repository/services/AbstractPersistenceService.java Thu Feb 23 19:05:47 2017 +0100 @@ -1721,11 +1721,18 @@ // ################################################################# // ################################################################# + /** + * Returns the number of Entities of the given objectClass in the database. + * + * Returns the number of all Entities if objectClass==null. + * + * @param objectClass + * @return + */ public Long getEntityCount(String objectClass) { Long count = null; try { - Session session = HibernateUtil.getSessionFactory() - .getCurrentSession(); + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.getTransaction().begin(); String hql = "select count(*) from Entity where "; @@ -1748,55 +1755,61 @@ session.getTransaction().commit(); } catch (Exception e) { - logger.error(e.getMessage(), e); + logger.error(e); } return count; } /** + * Returns all Entities of the given objectClass in the database + * between startRecord and endRecord. * * @param objectClass - * if it is null, it will be returned all entities (no - * definition). To get the definitions objectClass should be: + * if it is null, all entities are returned (except + * definitions). To get the definitions objectClass should be: * Node.TYPE_TBOX * @param startRecord * @param endRecord * @return */ - public List<Entity> getEntityPage(String objectClass, - final int startRecord, final int endRecord) { + public List<Entity> getEntityPage(String objectClass, final int startRecord, final int endRecord) { List<Entity> entities = new ArrayList<Entity>(); try { - Session session = HibernateUtil.getSessionFactory() - .getCurrentSession(); + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.getTransaction().begin(); String hql = "from Entity where "; if (StringUtils.isNotEmpty(objectClass)) { + // real objectClass hql += "objectClass = :objectClass AND "; } else { + // objectClass == null -- match object_class != 'TBox' hql += "objectClass != :objectClass AND "; } hql += "systemStatus = :systemStatus order by ownValue"; Query query = session.createQuery(hql); + // use Hibernate's result paging query.setFirstResult(startRecord); query.setMaxResults(endRecord); + // add query params query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION); if (StringUtils.isNotEmpty(objectClass)) { + // real objectClass query.setString("objectClass", objectClass); } else { + // objectClass == null -- match object_class != 'TBox' query.setString("objectClass", Node.TYPE_TBOX); } + // fetch Entities entities = query.list(); session.getTransaction().commit(); } catch (Exception e) { - logger.error(e.getMessage(), e); - // e.printStackTrace(); + logger.error(e); } return entities; }