Example usage for org.hibernate.event.spi AbstractPreDatabaseOperationEvent getEntity

List of usage examples for org.hibernate.event.spi AbstractPreDatabaseOperationEvent getEntity

Introduction

In this page you can find the example usage for org.hibernate.event.spi AbstractPreDatabaseOperationEvent getEntity.

Prototype

@Override
public Object getEntity() 

Source Link

Document

Retrieves the entity involved in the database operation.

Usage

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

License:Apache License

private void synchronizePersisterState(AbstractPreDatabaseOperationEvent event, Object[] state) {
    Object entity = event.getEntity();
    EntityPersister persister = event.getPersister();

    String[] propertyNames = persister.getPropertyNames();
    HashMap<Integer, Object> changedState = new HashMap<Integer, Object>();
    for (int i = 0; i < propertyNames.length; i++) {
        String p = propertyNames[i];
        MetaProperty metaProperty = domainMetaClass.getMetaProperty(p);
        if (ClosureEventTriggeringInterceptor.IGNORED.contains(p) || metaProperty == null) {
            continue;
        }//  ww  w .jav a  2  s.c o  m
        Object value = metaProperty.getProperty(entity);
        if (state[i] != value) {
            changedState.put(i, value);
        }
        state[i] = value;
        persister.setPropertyValue(entity, i, value);
    }

    synchronizeEntityUpdateActionState(event, entity, changedState);
}