Class PersistenceExceptionTranslationPostProcessor
- All Implemented Interfaces:
Serializable
,AopInfrastructureBean
,Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanPostProcessor
,Ordered
Repository
annotation, adding a corresponding 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
DataAccessException
hierarchy.
Autodetects beans that implement the
PersistenceExceptionTranslator
interface, which are subsequently asked to translate
candidate exceptions.
All of Spring's applicable resource factories (e.g.
LocalContainerEntityManagerFactoryBean
)
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 Repositories or DAOs)
with the @Repository
annotation, along with defining this post-processor
as a bean in the application context.
As of 5.3, PersistenceExceptionTranslator
beans will be sorted according
to Spring's dependency ordering rules: see Ordered
and Order
. Note that such beans will
get retrieved from any scope, not just singleton scope, as of this 5.3 revision.
- Since:
- 2.0
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from class org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
advisor, beforeExistingAdvisors
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
setBeanFactory
(BeanFactory beanFactory) Callback that supplies the owning factory to a bean instance.void
setRepositoryAnnotationType
(Class<? extends Annotation> repositoryAnnotationType) Set the 'repository' annotation type.Methods inherited from class org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor
isEligible, prepareProxyFactory
Methods inherited from class org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
customizeProxyFactory, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeforeExistingAdvisors
Methods inherited from class org.springframework.aop.framework.ProxyProcessorSupport
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader
Methods inherited from class org.springframework.aop.framework.ProxyConfig
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString
-
Constructor Details
-
PersistenceExceptionTranslationPostProcessor
public PersistenceExceptionTranslationPostProcessor()
-
-
Method Details
-
setRepositoryAnnotationType
Set the 'repository' annotation type. The default repository annotation type is theRepository
annotation.This setter property exists so that developers can provide their own (non-Spring-specific) annotation type to indicate that a class has a repository role.
- Parameters:
repositoryAnnotationType
- the desired annotation type
-
setBeanFactory
Description copied from interface:BeanFactoryAware
Callback that supplies the owning factory to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean.afterPropertiesSet()
or a custom init-method.- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
- Overrides:
setBeanFactory
in classAbstractBeanFactoryAwareAdvisingPostProcessor
- Parameters:
beanFactory
- owning BeanFactory (nevernull
). The bean can immediately call methods on the factory.- See Also:
-