List of usage examples for org.hibernate.event.spi PostInsertEvent getSession
public final EventSource getSession()
From source file:at.molindo.esi4j.module.hibernate.HibernateEventListener.java
License:Apache License
@Override public void onPostInsert(PostInsertEvent event) { EventSession eventSession = findEventSession(event.getSession()); if (eventSession != null) { eventSession.onPostInsert(event.getEntity()); } else {//from w w w . j ava 2 s . c om _batchedEventProcessor.onPostInsert(event.getEntity()); } }
From source file:com.corundumstudio.hibernate.dsc.QueryCacheEntityListener.java
License:Apache License
@Override public void onPostInsert(PostInsertEvent event) { Set<Entry<String, QueryListenerEntry>> values = getValue(event.getPersister()); for (Entry<String, QueryListenerEntry> entry : values) { InsertOrDeleteCommand command = new InsertOrDeleteCommand(); CacheCallback handler = entry.getValue().getHandler(); handler.commonParams(command, event.getEntity()); handler.onInsertOrDelete(command, event.getEntity()); DynamicQueryCache queryCache = getQueryCache(event.getPersister(), entry.getKey(), entry.getValue()); addResult(queryCache, entry.getValue(), command, event.getSession()); }// www . j a v a2 s . co m }
From source file:com.googlecode.hibernate.audit.listener.AuditListener.java
License:Open Source License
public void onPostInsert(PostInsertEvent event) { try {//from w w w .j av a2 s . co m String entityName = event.getPersister().getEntityName(); if (auditConfiguration.getExtensionManager().getAuditableInformationProvider() .isAuditable(entityName)) { AuditProcess auditProcess = auditConfiguration.getAuditProcessManager().get(event.getSession()); AuditWorkUnit workUnit = new InsertAuditWorkUnit(entityName, event.getId(), event.getEntity(), event.getPersister()); auditProcess.addWorkUnit(workUnit); } } catch (RuntimeException e) { if (log.isErrorEnabled()) { log.error("RuntimeException occured during onPostInsert, will re-throw the exception", e); } throw e; } }
From source file:org.cgiar.ccafs.marlo.data.HibernateAuditLogListener.java
License:Open Source License
@Override public void onPostInsert(PostInsertEvent postInsertEvent) { Object entity = postInsertEvent.getEntity(); LOG.debug("begin onPostInsert for Entity : " + entity); AuditLogContext auditLogContext = AuditLogContextProvider.getAuditLogContext(); /**//from ww w . j a va 2 s.com * This is because our save(entity), update(entity) and delete(entity) methods on our DAOs should not * execute the listeners. There might be a better way to do this like conditionally active the listeners. */ if (auditLogContext.getActionName() == null && CollectionUtils.isEmpty(auditLogContext.getRelationsNames())) { LOG.debug("No audit log context setup for insert on entity: " + entity); return; } /** * We might save many entities on a single request, but we only want to do the audit logging on one. */ if (!entity.getClass().getCanonicalName().equals(auditLogContext.getEntityCanonicalName())) { LOG.debug("Entity : " + entity + " , is not the entity we want to audit log"); return; } HashMap<String, Object> insertRecord = new HashMap<>(); if (entity instanceof IAuditLog) { insertRecord.put(IAuditLog.ENTITY, entity); insertRecord.put(IAuditLog.PRINCIPAL, new Long(1)); auditLogContext.getInserts().add(insertRecord); ClassMetadata classMetadata = postInsertEvent.getSession().getSessionFactory() .getClassMetadata(entity.getClass()); Type[] types = classMetadata.getPropertyTypes(); auditLogContext.getInserts().addAll(this.relations(postInsertEvent.getState(), types, ((IAuditLog) entity).getId(), true, postInsertEvent.getSession(), entity)); } postInsertEvent.getSession().getActionQueue() .registerProcess(new MARLOAuditBeforeTransactionCompletionProcess()); }