public class PersistenceExceptionTranslationPostProcessor extends AbstractAdvisingBeanPostProcessor implements BeanFactoryAware
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. LocalSessionFactoryBean
,
LocalEntityManagerFactoryBean
) 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.
PersistenceExceptionTranslationAdvisor
,
Repository
,
DataAccessException
,
PersistenceExceptionTranslator
,
Serialized FormModifier and Type | Field and Description |
---|---|
private java.lang.Class<? extends java.lang.annotation.Annotation> |
repositoryAnnotationType |
advisor, beforeExistingAdvisors
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
PersistenceExceptionTranslationPostProcessor() |
Modifier and Type | Method and Description |
---|---|
void |
setBeanFactory(BeanFactory beanFactory)
Callback that supplies the owning factory to a bean instance.
|
void |
setRepositoryAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> repositoryAnnotationType)
Set the 'repository' annotation type.
|
getOrder, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeanClassLoader, setBeforeExistingAdvisors, setOrder
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString
private java.lang.Class<? extends java.lang.annotation.Annotation> repositoryAnnotationType
public PersistenceExceptionTranslationPostProcessor()
public void setRepositoryAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> repositoryAnnotationType)
Repository
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.
repositoryAnnotationType
- the desired annotation typepublic void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware
Invoked after the population of normal bean properties
but before an initialization callback such as
InitializingBean.afterPropertiesSet()
or a custom init-method.
setBeanFactory
in interface BeanFactoryAware
beanFactory
- owning BeanFactory (never null
).
The bean can immediately call methods on the factory.BeanInitializationException