/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.jpa.event.internal.core; import org.hibernate.event.spi.PostInsertEvent; import org.hibernate.event.spi.PostInsertEventListener; import org.hibernate.jpa.event.spi.jpa.CallbackRegistryConsumer; import org.hibernate.jpa.event.spi.jpa.CallbackRegistry; import org.hibernate.jpa.event.spi.jpa.CallbackType; import org.hibernate.persister.entity.EntityPersister; /** * @author <a href="mailto:kabir.khan@jboss.org">Kabir Khan</a> * @author Steve Ebersole */ public class JpaPostInsertEventListener implements PostInsertEventListener, CallbackRegistryConsumer { private CallbackRegistry callbackRegistry; @Override public void injectCallbackRegistry(CallbackRegistry callbackRegistry) { this.callbackRegistry = callbackRegistry; } public JpaPostInsertEventListener() { super(); } public JpaPostInsertEventListener(CallbackRegistry callbackRegistry) { this.callbackRegistry = callbackRegistry; } @Override public void onPostInsert(PostInsertEvent event) { Object entity = event.getEntity(); callbackRegistry.postCreate( entity ); } @Override public boolean requiresPostCommitHanding(EntityPersister persister) { return callbackRegistry.hasRegisteredCallbacks( persister.getMappedClass(), CallbackType.POST_PERSIST ); } }