diff --git a/org.springframework.transaction/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java b/org.springframework.transaction/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java index df8ec516d2..c140c4250f 100644 --- a/org.springframework.transaction/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java +++ b/org.springframework.transaction/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,25 +35,28 @@ import org.springframework.util.Assert; import org.springframework.util.ClassUtils; /** - * Bean post-processor that automatically applies persistence exception - * translation to any bean that carries the - * {@link org.springframework.stereotype.Repository} annotation, - * adding a corresponding {@link PersistenceExceptionTranslationAdvisor} - * to the exposed proxy (either an existing AOP proxy or a newly generated - * proxy that implements all of the target's interfaces). + * Bean post-processor that automatically applies persistence exception translation to any + * bean marked with Spring's @{@link org.springframework.stereotype.Repository Repository} + * annotation, adding a corresponding {@link PersistenceExceptionTranslationAdvisor} to + * the exposed proxy (either an existing AOP proxy or a newly generated proxy that + * implements all of the target's interfaces). * *
Translates native resource exceptions to Spring's - * {@link org.springframework.dao.DataAccessException} hierarchy. + * {@link org.springframework.dao.DataAccessException DataAccessException} hierarchy. * Autodetects beans that implement the - * {@link org.springframework.dao.support.PersistenceExceptionTranslator} - * interface, which are subsequently asked to translate candidate exceptions. + * {@link org.springframework.dao.support.PersistenceExceptionTranslator + * PersistenceExceptionTranslator} interface, which are subsequently asked to translate + * candidate exceptions. * - *
All of Spring's applicable resource factories implement the
- * PersistenceExceptionTranslator interface out of the box.
- * As a consequence, all that is usually needed to enable automatic exception
- * translation is marking all affected beans (such as DAOs) with the
- * Repository annotation, along with defining this post-processor
- * as bean in the application context.
+
+ *
All of Spring's applicable resource factories (e.g. {@link + * org.springframework.orm.hibernate3.LocalSessionFactoryBean LocalSessionFactoryBean}, + * {@link org.springframework.orm.jpa.LocalEntityManagerFactoryBean + * LocalEntityManagerFactoryBean}) implement the {@code PersistenceExceptionTranslator} + * interface out of the box. As a consequence, all that is usually needed to enable + * automatic exception translation is marking all affected beans (such as Repositories or + * DAOs) with the {@code @Repository} annotation, along with defining this post-processor + * as a bean in the application context. * * @author Rod Johnson * @author Juergen Hoeller @@ -82,7 +85,7 @@ public class PersistenceExceptionTranslationPostProcessor extends ProxyConfig * @param repositoryAnnotationType the desired annotation type */ public void setRepositoryAnnotationType(Class extends Annotation> repositoryAnnotationType) { - Assert.notNull(repositoryAnnotationType, "'requiredAnnotationType' must not be null"); + Assert.notNull(repositoryAnnotationType, "'repositoryAnnotationType' must not be null"); this.repositoryAnnotationType = repositoryAnnotationType; } @@ -115,7 +118,7 @@ public class PersistenceExceptionTranslationPostProcessor extends ProxyConfig // Ignore AOP infrastructure such as scoped proxies. return bean; } - Class targetClass = AopUtils.getTargetClass(bean); + Class> targetClass = AopUtils.getTargetClass(bean); if (AopUtils.canApply(this.persistenceExceptionTranslationAdvisor, targetClass)) { if (bean instanceof Advised) { ((Advised) bean).addAdvisor(this.persistenceExceptionTranslationAdvisor);