Example usage for org.hibernate.event.spi PreUpdateEvent getPersister

List of usage examples for org.hibernate.event.spi PreUpdateEvent getPersister

Introduction

In this page you can find the example usage for org.hibernate.event.spi PreUpdateEvent getPersister.

Prototype

public EntityPersister getPersister() 

Source Link

Document

The persister for the #getEntity entity .

Usage

From source file:com.mpe.common.validation.BeanValidationEventListener.java

License:Open Source License

public boolean onPreUpdate(PreUpdateEvent event) {
    validate(event.getEntity(), event.getPersister().getEntityMode(), event.getPersister(),
            event.getSession().getFactory(), GroupsPerOperation.Operation.UPDATE);
    return false;
}

From source file:de.dktk.dd.rpb.portal.audit.AuditLogListener.java

License:Open Source License

private String buildUpdateMessage(PreUpdateEvent event) {
    String[] propertyNames = event.getPersister().getEntityMetamodel().getPropertyNames();
    Object[] oldStates = event.getOldState();
    Object[] newStates = event.getState();
    int index = 0;
    StringBuilder message = new StringBuilder(128);
    for (String propertyName : propertyNames) {
        message.append(message(propertyName, oldStates[index], newStates[index]));
        index++;/*from w  w w .j  av  a2  s.  com*/
    }
    return message.toString();
}

From source file:es.logongas.ix3.dao.impl.rules.EventListenerImplRuleEngine.java

License:Apache License

@Override
public boolean onPreUpdate(PreUpdateEvent pue) {
    autowired();/* w  ww.  j a v a2  s  .  c o m*/
    EntityMode entityMode = pue.getPersister().getEntityMode();

    RuleContext ruleContext = new RuleContextImplNoPrincipal(pue.getEntity(),
            getOriginalEntity(pue.getOldState(), pue.getPersister()));

    fireRules(ruleContext, pue.getPersister(), pue.getState(), entityMode, RuleGroupPredefined.PreUpdate.class,
            RuleGroupPredefined.PreInsertOrUpdate.class, RuleGroupPredefined.PreUpdateOrDelete.class,
            RuleGroupPredefined.PreInsertOrUpdateOrDelete.class);

    return false;
}

From source file:org.cgiar.ccafs.marlo.data.AuditColumnHibernateListener.java

License:Open Source License

/**
 * Note the implementation would be much simpler if we use JPA annotation @PreUpdate arather than raw hibernate.
 *//*  w ww.  ja v a2 s  . c  o m*/
@Override
public boolean onPreUpdate(PreUpdateEvent event) {

    if (!(event.getEntity() instanceof MarloAuditableEntity)) {
        LOG.debug("entity: " + event.getEntity().getClass() + "is not a MarloAuditableEntity");
        return false;
    }

    User user = this.getUser();

    /**
     * This is to guard against an unauthenticated user making an update
     */
    if (user.getId() == null) {
        return false;
    }

    String[] propertyNames = event.getPersister().getEntityMetamodel().getPropertyNames();
    Object[] state = event.getState();

    MarloAuditableEntity auditableEntity = (MarloAuditableEntity) event.getEntity();
    this.setValue(state, propertyNames, "modifiedBy", user, auditableEntity);

    auditableEntity.setModifiedBy(user);

    return false;
}

From source file:org.egov.infra.config.persistence.event.listener.HibernateEventListener.java

License:Open Source License

private void updateAuditableProperties(final PreUpdateEvent event) {
    int i = 0;/*from   w  ww.j  a v  a 2s  .  co m*/
    for (final String propName : event.getPersister().getPropertyNames()) {
        if ("modifiedDate".equals(propName))
            event.getState()[i] = new Date();
        if ("modifiedBy".equals(propName))
            event.getState()[i] = getUserObjectFromWithinEventListener(event.getSession());
        i++;
    }
}

From source file:org.egov.infra.config.persistence.event.listener.HibernateEventListener.java

License:Open Source License

private void updateAuditable(final PreUpdateEvent event) {
    int i = 0;/*from  w w w  .  jav  a 2  s .co  m*/
    for (final String propName : event.getPersister().getPropertyNames()) {
        if ("lastModifiedDate".equals(propName))
            event.getState()[i] = new Date();
        if ("lastModifiedBy".equals(propName))
            event.getState()[i] = getUserObjectFromWithinEventListener(event.getSession());
        i++;
    }
}

From source file:org.grails.orm.hibernate.event.listener.HibernateEventListener.java

License:Apache License

public boolean onPreUpdate(PreUpdateEvent event) {
    boolean evict = false;
    ClosureEventListener eventListener = findEventListener(event.getEntity(),
            event.getPersister().getFactory());
    if (eventListener != null) {
        evict = eventListener.onPreUpdate(event);
    }/*from  ww  w .j av a2s.c om*/
    return evict;
}

From source file:org.grails.orm.hibernate.support.ClosureEventListener.java

License:Apache License

protected void handleTimestampingBeforeUpdate(final PreUpdateEvent event, Object entity) {
    if (shouldTimestamp) {
        Class<?> dateCreatedType = null;
        Object timestamp = null;/*from   w  w  w  . j a v a 2 s .co  m*/
        String[] propertyNames = event.getPersister().getPropertyNames();
        if (dateCreatedProperty != null && dateCreatedProperty.getProperty(entity) == null) {
            dateCreatedType = dateCreatedProperty.getType();
            timestamp = timestampProvider.createTimestamp(dateCreatedType);
            dateCreatedProperty.setProperty(entity, timestamp);
            event.getState()[Arrays.asList(propertyNames).indexOf(GormProperties.DATE_CREATED)] = timestamp;
        }
        if (lastUpdatedProperty != null) {
            Class<?> lastUpdateType = lastUpdatedProperty.getType();
            if (dateCreatedType == null || !lastUpdateType.isAssignableFrom(dateCreatedType)) {
                timestamp = timestampProvider.createTimestamp(lastUpdateType);
            }
            lastUpdatedProperty.setProperty(entity, timestamp);
            event.getState()[Arrays.asList(propertyNames).indexOf(GormProperties.LAST_UPDATED)] = timestamp;
        }
    }
}

From source file:org.web4thejob.orm.event.PreUpdateListener.java

License:Open Source License

public boolean onPreUpdate(PreUpdateEvent event) {
    if (mrs == null) {
        mrs = ContextUtil.getMRS();//from w  w w.  j  ava2  s .  c o  m
    }

    for (AnnotationMetadata<?> metadata : mrs
            .getAnnotationMetadata(((Entity) event.getEntity()).getEntityType(), UpdateTimeHolder.class)) {
        EventUtil.assignValue((Entity) event.getEntity(), metadata.getIndex(),
                new Timestamp(System.currentTimeMillis()), event.getPersister(), event.getState());

    }

    for (AnnotationMetadata<?> metadata : mrs
            .getAnnotationMetadata(((Entity) event.getEntity()).getEntityType(), UserIdHolder.class)) {
        EventUtil.assignValue((Entity) event.getEntity(), metadata.getIndex(),
                ContextUtil.getSessionContext().getSecurityContext().getUserIdentity().getId(),
                event.getPersister(), event.getState());
    }

    return false;
}