protected void closeEntityManager(EntityManager em, Object transaction) { super.closeEntityManager(em, transaction); }
@Override public void clear() { EntityManager em = getEntityManager(); Object newTx = joinTransaction(em); try { int deletedNodes = em.createQuery("delete FROM NodeInstanceLog WHERE processInstanceId in (select spl.processInstanceId FROM ProcessInstanceLog spl WHERE spl.status in (2, 3))").executeUpdate(); logger.debug("CLEAR:: deleted node instances {}", deletedNodes); int deletedVariables = em.createQuery("delete FROM VariableInstanceLog WHERE processInstanceId in (select spl.processInstanceId FROM ProcessInstanceLog spl WHERE spl.status in (2, 3))").executeUpdate(); logger.debug("CLEAR:: deleted variable instances {}", deletedVariables); int deletedProcesses = em.createQuery("delete FROM ProcessInstanceLog WHERE status in (2, 3)").executeUpdate(); logger.debug("CLEAR:: deleted process instances {}", deletedProcesses); } finally { closeEntityManager(em, newTx); } }
@Override public ProcessInstanceLog findProcessInstance(long processInstanceId) { EntityManager em = getEntityManager(); Object newTx = joinTransaction(em); try { return (ProcessInstanceLog) em .createQuery("FROM ProcessInstanceLog p WHERE p.processInstanceId = :processInstanceId") .setParameter("processInstanceId", processInstanceId).getSingleResult(); } catch (NoResultException e) { return null; } finally { closeEntityManager(em, newTx); } }
public int doDelete(String queryBase, QueryWhere queryData, Class<?> resultType, String subQuery) { // create query Map<String, Object> queryParams = new HashMap<String, Object>(); String queryString = createDeleteQuery(queryBase, queryData, queryParams, true, subQuery); // logging logger.debug("DELETE statement:\n {}", queryString); if( logger.isDebugEnabled() ) { StringBuilder paramsStr = new StringBuilder("PARAMS:"); Map<String, Object> orderedParams = new TreeMap<String, Object>(queryParams); for( Entry<String, Object> entry : orderedParams.entrySet() ) { paramsStr.append("\n " + entry.getKey() + " : '" + entry.getValue() + "'"); } logger.debug(paramsStr.toString()); } // execute query EntityManager em = getEntityManager(); Object newTx = joinTransaction(em); Query query = em.createQuery(queryString); int result = executeWithParameters(queryParams, query); logger.debug("Deleted rows " + result); closeEntityManager(em, newTx); return result; }
protected void closeEntityManager(EntityManager em, Object transaction) { super.closeEntityManager(em, transaction); }