@Override public long standbyCount() throws OperationalException { Session session = null; long count = 0; try { session = parkingSessionFactory.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(Notice.class); User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); String role = user.getRole(); criteria.add(Restrictions.eq("author", user)); criteria.add(Restrictions.ne(STATUS, NoticeStatus.DELETED.name())); criteria.setProjection(Projections.rowCount()); count = (long) criteria.uniqueResult(); } catch (Exception e) { LOGGER.error("unreadCount: error in unreadCount notfication", e); throw new OperationalException( HttpConstants.INTERNAL_SERVER_ERROR, ResponseConstants.ERROR_FETCHING_FROM_DB, HttpStatus.INTERNAL_SERVER_ERROR); } finally { if (session != null) { session.close(); } } return count; }
@Override public Notice findById(int noticeId) throws OperationalException { Session session = null; Notice notice = null; try { session = parkingSessionFactory.getSessionFactory().openSession(); session.beginTransaction(); Criteria criteria = session.createCriteria(Notice.class); criteria.add(Restrictions.eq(NOTICEID, noticeId)); criteria.add(Restrictions.ne(STATUS, NoticeStatus.DELETED.name())); criteria.setMaxResults(1); notice = (Notice) criteria.uniqueResult(); return notice; } catch (Exception e) { LOGGER.error("findById: Exception ", e); throw new OperationalException( HttpConstants.INTERNAL_SERVER_ERROR, ResponseConstants.ERROR_FETCHING_FROM_DB, HttpStatus.INTERNAL_SERVER_ERROR); } finally { if (session != null) { session.close(); } } }