diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoFactoryBean.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoFactoryBean.java index 6894dcc2c..b76274eb2 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoFactoryBean.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoFactoryBean.java @@ -22,6 +22,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; +import org.springframework.dao.DataAccessException; +import org.springframework.dao.support.PersistenceExceptionTranslator; import org.springframework.util.Assert; import com.mongodb.Mongo; @@ -36,7 +38,7 @@ import com.mongodb.ServerAddress; * * @since 1.0 */ -public class MongoFactoryBean implements FactoryBean, InitializingBean { +public class MongoFactoryBean implements FactoryBean, InitializingBean, PersistenceExceptionTranslator { /** @@ -50,6 +52,8 @@ public class MongoFactoryBean implements FactoryBean, InitializingBean { private Integer port; private List replicaSetSeeds; private List replicaPair; + + private PersistenceExceptionTranslator exceptionTranslator = new MongoExceptionTranslator(); public void setMongoOptions(MongoOptions mongoOptions) { this.mongoOptions = mongoOptions; @@ -117,4 +121,8 @@ public class MongoFactoryBean implements FactoryBean, InitializingBean { } } } + + public DataAccessException translateExceptionIfPossible(RuntimeException ex) { + return exceptionTranslator.translateExceptionIfPossible(ex); + } }