Example usage for org.hibernate.event.spi PreInsertEvent getState

List of usage examples for org.hibernate.event.spi PreInsertEvent getState

Introduction

In this page you can find the example usage for org.hibernate.event.spi PreInsertEvent getState.

Prototype

public Object[] getState() 

Source Link

Document

Getter for property 'state'.

Usage

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

License:Apache License

@Override
public boolean onPreInsert(PreInsertEvent pie) {
    autowired();//  w  w w .j  a va  2  s  . c  om
    EntityMode entityMode = pie.getPersister().getEntityMode();

    RuleContext ruleContext = new RuleContextImplNoPrincipal(pie.getEntity(), null);

    fireRules(ruleContext, pie.getPersister(), pie.getState(), entityMode, RuleGroupPredefined.PreInsert.class,
            RuleGroupPredefined.PreInsertOrUpdate.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 @PreInser rather than raw hibernate.
 *//*w ww . j  av  a 2  s  . c o  m*/
@Override
public boolean onPreInsert(PreInsertEvent event) {

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

    MarloAuditableEntity auditableEntity = (MarloAuditableEntity) event.getEntity();

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

    User user = this.getUser();
    Date now = new Date();

    Boolean active = new Boolean(true);

    this.setValue(state, propertyNames, "createdBy", user, auditableEntity);
    this.setValue(state, propertyNames, "activeSince", now, auditableEntity);
    this.setValue(state, propertyNames, "active", active, auditableEntity);

    // Required to guard against an insert happening together with an update.
    auditableEntity.setCreatedBy(user);
    auditableEntity.setActiveSince(now);
    auditableEntity.setActive(active);

    return false;
}

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

License:Apache License

public boolean onPreInsert(final PreInsertEvent event) {
    return doWithManualSession(event, new Closure<Boolean>(this) {
        @Override/*from   w  w w.  ja  v a 2 s.c o  m*/
        public Boolean call() {
            Object entity = event.getEntity();
            boolean synchronizeState = false;
            if (beforeInsertCaller != null) {
                if (beforeInsertCaller.call(entity)) {
                    return true;
                }
                synchronizeState = true;
            }
            synchronizeState = handleTimestampingBeforeInsert(entity, synchronizeState);

            if (synchronizeState) {
                synchronizePersisterState(event, event.getState());
            }

            return doValidate(entity);
        }

    });
}

From source file:org.meruvian.yama.service.jpa.hibernate.LogInformationListener.java

License:Apache License

@Override
public boolean onPreInsert(PreInsertEvent event) {
    String userId = getCurrentUserId();

    if (event.getEntity() instanceof DefaultPersistence) {
        DefaultPersistence p = (DefaultPersistence) event.getEntity();
        LogInformation logInfo = p.getLogInformation();

        logInfo.setCreateDate(new Date());
        logInfo.setLastUpdateDate(new Date());
        logInfo.setCreateBy(userId);// w  w w  . jav a  2s  .com
        logInfo.setLastUpdateBy(userId);

        Object[] state = event.getState();

        for (int i = 0; i < state.length; i++) {
            if (state[i] instanceof LogInformation) {
                state[i] = logInfo;

                break;
            }
        }
    }

    return false;
}

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

License:Open Source License

public boolean onPreInsert(PreInsertEvent event) {
    if (mrs == null) {
        mrs = ContextUtil.getMRS();/*w  w  w . ja  v a2s. co  m*/
    }

    for (AnnotationMetadata<?> metadata : mrs
            .getAnnotationMetadata(((Entity) event.getEntity()).getEntityType(), InsertTimeHolder.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;
}