private void clearAll (long listId) { String hql = "delete " + CategoryItem.class.getName() + " where categoryitemlist_id = :listId"; Query q = session.createQuery(hql).setParameter("listId", listId); q.executeUpdate(); } @Override public void removeAllListItems(long categoryItemListId) { getHibernateTemplate().execute(session -> session.createNativeQuery("DELETE FROM ircm_categoryitem WHERE ircm_categoryitemlist_id = :categoryItemListId").setParameter("categoryItemListId", categoryItemListId).executeUpdate()); updateListNumItems(categoryItemListId); } session.createNativeQuery("UPDATE ircm_categoryitemlist SET ircm_categoryitemlist.num_items=:numItems WHERE ircm.ircm_categoryitemlist.id=:categoryItemListId") .setParameter("numItems", numItems) .setParameter("categoryItemListId", categoryItemListId) .executeUpdate(); @Override public void archiveAllListItems(long categoryItemListId) { getHibernateTemplate().execute(session -> session.createNativeQuery("UPDATE ircm_categoryitem SET ircm_categoryitem.archived=1 WHERE ircm_categoryitem.ircm_categoryitemlist_id=:categoryItemListId") .setParameter("categoryItemListId", categoryItemListId) .executeUpdate()); } return getHibernateTemplate().execute(session -> { Long numItems = (Long)(session.createNativeQuery( "SELECT COUNT(*) as count FROM ircm_categoryitem WHERE ircm_categoryitemlist_id = :categoryItemListId") .setParameter("categoryItemListId", categoryItemListId) .addScalar("count", LongType.INSTANCE) .uniqueResult()); session.createNativeQuery("UPDATE ircm_categoryitemlist SET ircm_categoryitemlist.num_items=:numItems WHERE ircm.ircm_categoryitemlist.id=:categoryItemListId") .setParameter("numItems", numItems) .setParameter("categoryItemListId", categoryItemListId) .executeUpdate(); return numItems; });