List of usage examples for org.hibernate.event.spi PostUpdateEvent getPersister
public EntityPersister getPersister()
From source file:com.corundumstudio.hibernate.dsc.QueryCacheEntityListener.java
License:Apache License
@Override public void onPostUpdate(PostUpdateEvent event) { Set<Entry<String, QueryListenerEntry>> values = getValue(event.getPersister()); for (Entry<String, QueryListenerEntry> entry : values) { UpdateCommand command = new UpdateCommand(); CacheCallback handler = entry.getValue().getHandler(); handler.commonParams(command, event.getEntity()); handler.onUpdate(command, event.getEntity()); DynamicQueryCache queryCache = getQueryCache(event.getPersister(), entry.getKey(), entry.getValue()); if (command.isAddResult() || command.isUniqueResult()) { addResult(queryCache, entry.getValue(), command, event.getSession()); }/*from w ww. j a va 2 s .c om*/ if (command.isRemoveResult()) { removeResult(queryCache, entry.getValue(), command, event.getSession()); } } }
From source file:com.googlecode.hibernate.audit.listener.AuditListener.java
License:Open Source License
public void onPostUpdate(PostUpdateEvent event) { try {/*from w ww. j ava 2 s . c om*/ String entityName = event.getPersister().getEntityName(); if (auditConfiguration.getExtensionManager().getAuditableInformationProvider() .isAuditable(entityName)) { AuditProcess auditProcess = auditConfiguration.getAuditProcessManager().get(event.getSession()); AuditWorkUnit workUnit = new UpdateAuditWorkUnit(entityName, event.getId(), event.getEntity(), event.getPersister(), event.getOldState(), event.getState()); auditProcess.addWorkUnit(workUnit); } } catch (RuntimeException e) { if (log.isErrorEnabled()) { log.error("RuntimeException occured during onPostUpdate, will re-throw the exception", e); } throw e; } }
From source file:es.logongas.ix3.dao.impl.rules.EventListenerImplRuleEngine.java
License:Apache License
@Override public void onPostUpdate(PostUpdateEvent pue) { autowired();//from w w w .j a v a 2s . c om EntityMode entityMode = pue.getPersister().getEntityMode(); RuleContext ruleContext = new RuleContextImplNoPrincipal(pue.getEntity(), getOriginalEntity(pue.getOldState(), pue.getPersister())); fireRules(ruleContext, pue.getPersister(), pue.getState(), entityMode, RuleGroupPredefined.PostUpdate.class, RuleGroupPredefined.PostInsertOrUpdate.class, RuleGroupPredefined.PostUpdateOrDelete.class, RuleGroupPredefined.PostInsertOrUpdateOrDelete.class); }
From source file:org.grails.orm.hibernate.event.listener.HibernateEventListener.java
License:Apache License
public void onPostUpdate(PostUpdateEvent event) { ClosureEventListener eventListener = findEventListener(event.getEntity(), event.getPersister().getFactory()); if (eventListener != null) { eventListener.onPostUpdate(event); }// www . j av a 2s . com }
From source file:org.granite.tide.hibernate4.HibernateDataChangePublishListener.java
License:Open Source License
public void onPostUpdate(PostUpdateEvent event) { if (DataPublishListener.handleExclude(event.getEntity())) return;/*w ww. j a v a 2 s. com*/ if (event.getDirtyProperties() != null && event.getDirtyProperties().length > 0) { Object change = getChange(event.getPersister(), event.getSession(), event.getPersister().getEntityName(), event.getId(), event.getEntity()); if (change instanceof Change) { for (int i = 0; i < event.getDirtyProperties().length; i++) { int pidx = event.getDirtyProperties()[i]; String pname = event.getPersister().getPropertyNames()[pidx]; if (AnnotationUtils.isAnnotatedWith(event.getEntity(), pname, ExcludeFromDataPublish.class)) continue; ((Change) change).getChanges().put(pname, event.getState()[pidx]); } } else if (change == null) DataContext.addUpdate(EntityUpdateType.UPDATE, event.getEntity(), event.getEntity()); } }
From source file:org.zanata.service.impl.EntityListenerUtil.java
License:Open Source License
/** * Try to locate index for field in the entity. We try to optimize a * bit here since the index should be consistent and only need to be looked * up once. If the given index is not null, it means it has been looked up * and set already so we just return that value. Otherwise it will look it * up in hibernate persister and return the index value. * * @param slugFieldIndex//from w w w. j a v a 2 s. c o m * if not null it will be the index to use * @param event * post update event for an entity * @param entityField field name to look up in entity * @return looked up index for a given field for the entity */ static int getFieldIndex(Integer slugFieldIndex, PostUpdateEvent event, String entityField) { if (slugFieldIndex != null) { return slugFieldIndex; } String[] propertyNames = event.getPersister().getPropertyNames(); int i; for (i = 0; i < propertyNames.length; i++) { String propertyName = propertyNames[i]; if (propertyName.equals(entityField)) { return i; } } log.error("can not find {} index in entity [{}] properties [{}]", entityField, event.getEntity(), Lists.newArrayList(propertyNames)); throw new IllegalStateException("can not find " + entityField + " index in entity properties"); }