diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java index 234fb9539..f2150192f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java @@ -30,6 +30,7 @@ import com.mongodb.MongoException; import com.mongodb.util.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationListener; import org.springframework.dao.DataAccessException; import org.springframework.data.document.mongodb.CollectionCallback; import org.springframework.data.document.mongodb.MongoTemplate; @@ -38,6 +39,7 @@ import org.springframework.data.document.mongodb.index.CompoundIndexes; import org.springframework.data.document.mongodb.index.IndexDirection; import org.springframework.data.document.mongodb.index.Indexed; import org.springframework.data.mapping.PropertyHandler; +import org.springframework.data.mapping.event.MappingContextEvent; import org.springframework.data.mapping.model.PersistentProperty; import org.springframework.util.Assert; @@ -48,7 +50,7 @@ import org.springframework.util.Assert; * @author Jon Brisbin * @author Oliver Gierke */ -public class MongoPersistentEntityIndexCreator { +public class MongoPersistentEntityIndexCreator implements ApplicationListener{ private static final Logger log = LoggerFactory.getLogger(MongoPersistentEntityIndexCreator.class); @@ -68,6 +70,13 @@ public class MongoPersistentEntityIndexCreator { checkForIndexes(entity); } } + + /* (non-Javadoc) + * @see org.springframework.context.ApplicationListener#onApplicationEvent(org.springframework.context.ApplicationEvent) + */ + public void onApplicationEvent(MappingContextEvent event) { + checkForIndexes((MongoPersistentEntity) event.getPersistentEntity()); + } protected void checkForIndexes(MongoPersistentEntity entity) { Class type = entity.getType();