Example usage for org.hibernate.event.spi EventType PRE_DELETE

List of usage examples for org.hibernate.event.spi EventType PRE_DELETE

Introduction

In this page you can find the example usage for org.hibernate.event.spi EventType PRE_DELETE.

Prototype

EventType PRE_DELETE

To view the source code for org.hibernate.event.spi EventType PRE_DELETE.

Click Source Link

Usage

From source file:com.invariantproperties.sandbox.springentitylistener.listener.HibernateEntityListenersConfigurer.java

License:Apache License

@PostConstruct
public void registerListeners() {
    HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory) emf;
    SessionFactory sf = hemf.getSessionFactory();
    EventListenerRegistry registry = ((SessionFactoryImpl) sf).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(listener);
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(listener);
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_DELETE).appendListener(listener);
    registry.getEventListenerGroup(EventType.POST_LOAD).appendListener(listener);
}

From source file:com.invariantproperties.sandbox.springentitylistener.listener.SpringEntityListenersConfigurer.java

License:Apache License

@PostConstruct
public void registerListeners() {
    // get registry so we can add listeners.
    HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory) entityManagerFactory;
    SessionFactory sf = hemf.getSessionFactory();
    EventListenerRegistry registry = ((SessionFactoryImpl) sf).getServiceRegistry()
            .getService(EventListenerRegistry.class);

    final Set<Object> listeners = new HashSet<Object>();

    EntityManager entityManager = null;/*ww  w  .j a v  a 2s  .  com*/
    try {
        entityManager = hemf.createEntityManager();
        // for every entity known to the system...
        for (EntityType<?> entity : entityManager.getMetamodel().getEntities()) {

            // ... register event listeners for it.
            if (entity.getJavaType().isAnnotationPresent(SpringEntityListeners.class)) {
                SpringEntityListeners annotation = (SpringEntityListeners) entity.getJavaType()
                        .getAnnotation(SpringEntityListeners.class);
                for (Class<?> beanClass : annotation.value()) {
                    Map<String, ?> map = context.getBeansOfType(beanClass);
                    listeners.addAll(map.values());
                }
            }
        }
    } finally {
        if (entityManager != null) {
            entityManager.close();
        }
    }

    // register adapter and listeners.
    HibernateEntityListenersAdapter adapter = new HibernateEntityListenersAdapter(
            new ArrayList<Object>(listeners), entityManagerFactory);
    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(adapter);
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_COMMIT_DELETE).appendListener(adapter);
    registry.getEventListenerGroup(EventType.POST_LOAD).appendListener(adapter);
}

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

License:Apache License

private void prependListeners(EventListenerRegistry eventListenerRegistry) {
    eventListenerRegistry.prependListeners(EventType.PRE_INSERT, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.PRE_LOAD, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.PRE_UPDATE, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.PRE_DELETE, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.POST_INSERT, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.POST_LOAD, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.POST_UPDATE, new EventListenerImplRuleEngine());
    eventListenerRegistry.prependListeners(EventType.POST_DELETE, new EventListenerImplRuleEngine());
}

From source file:kr.debop4j.search.AppConfig.java

License:Apache License

@Bean
public SessionFactory sessionFactory() {

    if (log.isInfoEnabled())
        log.info("SessionFactory Bean? ?...");

    LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();

    factoryBean.setHibernateProperties(hibernateProperties());
    factoryBean.setDataSource(dataSource());
    factoryBean.setEntityInterceptor(hibernateInterceptor());
    factoryBean.setPackagesToScan(mappingPackages);

    try {//from w w  w . j  ava  2s. c  om
        factoryBean.afterPropertiesSet();

        if (log.isInfoEnabled())
            log.info("SessionFactory Bean? ?!!!");

        SessionFactory sessionFactory = factoryBean.getObject();

        // validator listener 
        HibernateTool.registerEventListener(sessionFactory, beanValidationEventListener(), EventType.PRE_INSERT,
                EventType.PRE_UPDATE, EventType.PRE_DELETE);

        if (log.isInfoEnabled())
            log.info("SessionFactory Bean? ?!!!");

        return sessionFactory;

    } catch (IOException e) {
        throw new RuntimeException("SessionFactory ? .", e);
    }
}

From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactory.java

License:Apache License

/**
 * This method automatically adds discovered hibernate event listeners into
 * the hibernate service registry.//from   ww  w .j a  va2s . com
 *
 * @param registry The service registry.
 */
private void injectEventListeners(final ServiceRegistry registry) {

    EventListenerRegistry eventRegistry = registry.getService(EventListenerRegistry.class);

    List<PostInsertEventListener> postInsertEvents = locator.getAllServices(PostInsertEventListener.class);
    for (PostInsertEventListener piEventListener : postInsertEvents) {
        logger.trace("Registering PostInsert: " + piEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_INSERT, piEventListener);
    }

    List<PostUpdateEventListener> postUpdateEvents = locator.getAllServices(PostUpdateEventListener.class);
    for (PostUpdateEventListener puEventListener : postUpdateEvents) {
        logger.trace("Registering PostUpdate: " + puEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_UPDATE, puEventListener);
    }

    List<PostDeleteEventListener> postDeleteEvents = locator.getAllServices(PostDeleteEventListener.class);
    for (PostDeleteEventListener pdEventListener : postDeleteEvents) {
        logger.trace("Registering PostDelete: " + pdEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_DELETE, pdEventListener);
    }

    List<PreInsertEventListener> preInsertEvents = locator.getAllServices(PreInsertEventListener.class);
    for (PreInsertEventListener piEventListener : preInsertEvents) {
        logger.trace("Registering PreInsert: " + piEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.PRE_INSERT, piEventListener);
    }

    List<PreUpdateEventListener> preUpdateEvents = locator.getAllServices(PreUpdateEventListener.class);
    for (PreUpdateEventListener puEventListener : preUpdateEvents) {
        logger.trace("Registering PreUpdate: " + puEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.PRE_UPDATE, puEventListener);
    }

    List<PreDeleteEventListener> preDeleteEvents = locator.getAllServices(PreDeleteEventListener.class);
    for (PreDeleteEventListener pdEventListener : preDeleteEvents) {
        logger.trace("Registering PreDelete: " + pdEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.PRE_DELETE, pdEventListener);
    }

    List<PostCommitInsertEventListener> pciEvents = locator.getAllServices(PostCommitInsertEventListener.class);
    for (PostCommitInsertEventListener cpiEventListener : pciEvents) {
        logger.trace("Registering PostCommitInsert: " + cpiEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_COMMIT_INSERT, cpiEventListener);
    }

    List<PostCommitUpdateEventListener> pcuEvents = locator.getAllServices(PostCommitUpdateEventListener.class);
    for (PostCommitUpdateEventListener cpuEventListener : pcuEvents) {
        logger.trace("Registering PostCommitUpdate: " + cpuEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_COMMIT_UPDATE, cpuEventListener);
    }

    List<PostCommitDeleteEventListener> pcdEvents = locator.getAllServices(PostCommitDeleteEventListener.class);
    for (PostCommitDeleteEventListener cpdEventListener : pcdEvents) {
        logger.trace("Registering PostCommitDelete: " + cpdEventListener.getClass().getCanonicalName());
        eventRegistry.appendListeners(EventType.POST_COMMIT_DELETE, cpdEventListener);
    }
}

From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactoryTest.java

License:Apache License

/**
 * Test the application event injectors.
 *///from w w  w.j  a va 2s  .  c o m
@Test
public void testEventInjection() {

    // Create a fake application.
    SessionFactory factoryFactory = locator.getService(SessionFactory.class);
    Assert.assertNotNull(factoryFactory);

    ServiceRegistry serviceRegistry = ((SessionFactoryImpl) factoryFactory).getServiceRegistry();
    EventListenerRegistry eventRegistry = serviceRegistry.getService(EventListenerRegistry.class);

    EventListenerGroup<PreInsertEventListener> priGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_INSERT);
    assertContainsListener(priGroup);

    EventListenerGroup<PostInsertEventListener> poiGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_INSERT);
    assertContainsListener(poiGroup);

    EventListenerGroup<PreUpdateEventListener> pruGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_UPDATE);
    assertContainsListener(pruGroup);

    EventListenerGroup<PostUpdateEventListener> pouGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_UPDATE);
    assertContainsListener(pouGroup);

    EventListenerGroup<PreDeleteEventListener> prdGroup = eventRegistry
            .getEventListenerGroup(EventType.PRE_DELETE);
    assertContainsListener(prdGroup);

    EventListenerGroup<PostDeleteEventListener> podGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_DELETE);
    assertContainsListener(podGroup);

    EventListenerGroup<PostInsertEventListener> pciGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_INSERT);
    assertContainsListener(pciGroup);

    EventListenerGroup<PostUpdateEventListener> pcuGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_UPDATE);
    assertContainsListener(pcuGroup);

    EventListenerGroup<PostDeleteEventListener> pcdGroup = eventRegistry
            .getEventListenerGroup(EventType.POST_COMMIT_DELETE);
    assertContainsListener(pcdGroup);
}

From source file:org.candlepin.guice.CandlepinContextListener.java

License:Open Source License

/**
 * There's no way to really get Guice to perform injections on stuff that
 * the JpaPersistModule is creating, so we resort to grabbing the EntityManagerFactory
 * after the fact and adding the Validation EventListener ourselves.
 * @param injector/*from   w  w w.  j ava  2 s  .c  om*/
 */
private void insertValidationEventListeners(Injector injector) {
    javax.inject.Provider<EntityManagerFactory> emfProvider = injector.getProvider(EntityManagerFactory.class);
    HibernateEntityManagerFactory hibernateEntityManagerFactory = (HibernateEntityManagerFactory) emfProvider
            .get();
    SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory
            .getSessionFactory();
    EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry()
            .getService(EventListenerRegistry.class);

    javax.inject.Provider<BeanValidationEventListener> listenerProvider = injector
            .getProvider(BeanValidationEventListener.class);
    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(listenerProvider.get());
}

From source file:org.candlepin.gutterball.servlet.GutterballValidationFilter.java

License:Open Source License

public void init(FilterConfig filterConfig) throws ServletException {
    HibernateEntityManagerFactory hibernateEntityManagerFactory = (HibernateEntityManagerFactory) this.factoryProvider
            .get();/*  ww  w  . ja  v  a  2s.  c o  m*/
    SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory
            .getSessionFactory();
    EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry()
            .getService(EventListenerRegistry.class);

    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(this.listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(this.listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(this.listenerProvider.get());
}

From source file:org.candlepin.test.DatabaseTestFixture.java

License:Open Source License

/**
 * There's no way to really get Guice to perform injections on stuff that
 * the JpaPersistModule is creating, so we resort to grabbing the EntityManagerFactory
 * after the fact and adding the Validation EventListener ourselves.
 * @param injector/*from  ww  w .  j  a va 2  s . c o m*/
 */
private void insertValidationEventListeners(Injector injector) {
    Provider<EntityManagerFactory> emfProvider = injector.getProvider(EntityManagerFactory.class);
    HibernateEntityManagerFactory hibernateEntityManagerFactory = (HibernateEntityManagerFactory) emfProvider
            .get();
    SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory
            .getSessionFactory();
    EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry()
            .getService(EventListenerRegistry.class);

    Provider<BeanValidationEventListener> listenerProvider = injector
            .getProvider(BeanValidationEventListener.class);
    registry.getEventListenerGroup(EventType.PRE_INSERT).appendListener(listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_UPDATE).appendListener(listenerProvider.get());
    registry.getEventListenerGroup(EventType.PRE_DELETE).appendListener(listenerProvider.get());
}

From source file:org.flowerplatform.web.database.DatabaseManager.java

License:Open Source License

/**
 * @author Mariana/* www.  j  a  v  a  2 s. c  o m*/
 */
public void initialize() {
    //      Configuration config = new Configuration();
    //      Properties props = config.getProperties();
    Properties props = new Properties();

    //      props.setProperty(Environment.DRIVER, "org.postgresql.Driver");
    //      props.setProperty(Environment.USER, "postgres");
    //      props.setProperty(Environment.URL, "jdbc:postgresql://localhost/flower-dev-center");
    //      props.setProperty(Environment.PASS, "postgres");
    //      props.setProperty(Environment.DIALECT, PostgresPlusDialect.class.getName());
    //      props.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
    //      props.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
    //      props.setProperty(Environment.SHOW_SQL, "true");

    props.setProperty(Environment.DRIVER, "org.h2.Driver");
    props.setProperty(Environment.USER, "sa");
    props.setProperty(Environment.URL, "jdbc:h2:mem:temp_flower_web;MVCC=TRUE");
    props.setProperty(Environment.PASS, "");
    props.setProperty(Environment.DIALECT, H2Dialect.class.getName());
    props.setProperty(Environment.HBM2DDL_AUTO, "create");
    //      props.setProperty(Environment.SHOW_SQL, "true");

    props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "REFRESH,PERSIST,MERGE");
    props.setProperty(PersistenceOptions.PERSISTENCE_XML, "annotations.xml");
    props.setProperty(PersistenceOptions.JOIN_TABLE_FOR_NON_CONTAINED_ASSOCIATIONS, "false");
    props.setProperty(PersistenceOptions.ALWAYS_VERSION, "false");
    //      props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "TABLE_PER_CLASS");
    props.setProperty(PersistenceOptions.INHERITANCE_MAPPING, "SINGLE_TABLE");
    props.setProperty(PersistenceOptions.ADD_INDEX_FOR_FOREIGN_KEY, "false");

    // create the HbDataStore using the name
    final HbDataStore hbds = HbHelper.INSTANCE.createRegisterDataStore(DS_NAME);

    // set the properties
    hbds.setDataStoreProperties(props);
    // sets its epackages stored in this datastore
    hbds.setEPackages(new EPackage[] { EntityPackage.eINSTANCE, NotationPackage.eINSTANCE });
    //      ((HbSessionDataStore) hbds).setConfiguration(config); 

    // initialize
    try {
        hbds.initialize();
    } catch (Throwable e) {
        System.err.println(hbds.getMappingXML());
        logger.error("FATAL: error while initializing the HbDataStore", e);
    }
    System.err.println(hbds.getMappingXML());

    factory = hbds.getSessionFactory();
    EventListenerRegistry registry = ((SessionFactoryImpl) factory).getServiceRegistry()
            .getService(EventListenerRegistry.class);
    SecurityEntityListener listener = new SecurityEntityListener();
    registry.appendListeners(EventType.POST_INSERT, listener);
    registry.appendListeners(EventType.POST_DELETE, listener);
    registry.appendListeners(EventType.POST_UPDATE, listener);
    registry.appendListeners(EventType.PRE_DELETE, listener);

    initWithTestData();

    new DatabaseOperationWrapper(new DatabaseOperation() {

        @Override
        public void run() {
            DBVersion dbVersion = null;
            dbVersion = wrapper.find(DBVersion.class, DBVersion.SINGLETON_RECORD_ID);
            if (dbVersion == null) {
                logger.error("Cannot find database version from the database.");
            } else if (dbVersion.getDbVersion() < FlowerProperties.DB_VERSION) {
                logger.error(
                        "Database version mismatch. Database version = {} is lower than expected = {}. Please run the DB update scripts.",
                        dbVersion.getDbVersion(), FlowerProperties.DB_VERSION);
            } else if (dbVersion.getDbVersion() > FlowerProperties.DB_VERSION) {
                logger.warn(
                        "Database version mismatch. Database version = {} is greater than expected = {}. You may continue, but please be aware that the application may malfunction and/or corrupt the data in the DB.",
                        dbVersion.getDbVersion(), FlowerProperties.DB_VERSION);
            } else {
                // same version; everything is OK
                logger.info("Database version check OK. Version = {}", dbVersion.getDbVersion());
            }
        }
    });
}