/** * Insert audit. * * @param aSbiAudit the a sbi audit * @throws EMFUserError the EMF user error * @see it.eng.spagobi.monitoring.dao.IAuditDAO#insertAudit(it.eng.spagobi.bo.SbiAudit) */ public void insertAudit(SbiAudit aSbiAudit) throws EMFUserError { logger.debug("IN"); Session session = null; Transaction tx = null; try { session = getSession(); ; tx = session.beginTransaction(); if (aSbiAudit.getSbiObject() == null) { Integer objectId = aSbiAudit.getDocumentId(); SbiObjects sbiObject = (SbiObjects) session.load(SbiObjects.class, objectId); aSbiAudit.setSbiObject(sbiObject); } if (aSbiAudit.getSbiSubObject() == null) { Integer subObjId = aSbiAudit.getSubObjId(); if (subObjId != null) { SbiSubObjects subObj = (SbiSubObjects) session.load(SbiSubObjects.class, subObjId); aSbiAudit.setSbiSubObject(subObj); } } if (aSbiAudit.getSbiEngine() == null) { Integer engineId = aSbiAudit.getEngineId(); SbiEngines sbiEngine = (SbiEngines) session.load(SbiEngines.class, engineId); aSbiAudit.setSbiEngine(sbiEngine); } updateSbiCommonInfo4Insert(aSbiAudit); session.save(aSbiAudit); session.flush(); tx.commit(); } catch (HibernateException he) { logger.error(he); if (tx != null) tx.rollback(); throw new EMFUserError(EMFErrorSeverity.ERROR, 100); } finally { if (session != null) { if (session.isOpen()) session.close(); } logger.debug("OUT"); } }