Interface ManagedBeanSettings
- All Known Subinterfaces:
AvailableSettings
- All Known Implementing Classes:
Environment
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Controls whether Hibernate can try to create beans other than converters and listeners using CDI.static final String
Identifies aBeanContainer
to be used.static final String
Deprecated.static final String
Used in conjunction with "hibernate.resource.beans.container" when CDI is used.static final String
Used to pass a CDIBeanManager
to Hibernate.
-
Field Details
-
JAKARTA_CDI_BEAN_MANAGER
Used to pass a CDIBeanManager
to Hibernate.According to the JPA specification, the
BeanManager
should be passed at boot time and be ready for immediate use at that time. But not all environments can do this (WildFly, for example). To accommodate such environments, Hibernate provides two options:- A proprietary CDI extension SPI (which has been proposed to the CDI
spec group as a standard option) which can be used to provide delayed
BeanManager
access: to use this solution, the reference passed as theBeanManager
during bootstrap should be typed asExtendedBeanManager
. - Delayed access to the
BeanManager
reference: here, Hibernate will not access the reference passed as theBeanManager
during bootstrap until it is first needed. Note, however, that this has the effect of delaying the detection of any deployment problems until after bootstrapping.
BeanManager
, either directly, or viaExtendedBeanManager
. - A proprietary CDI extension SPI (which has been proposed to the CDI
spec group as a standard option) which can be used to provide delayed
-
BEAN_CONTAINER
Identifies aBeanContainer
to be used.Note that for CDI-based containers setting this is not necessary - simply pass the
BeanManager
to use viaCDI_BEAN_MANAGER
and optionally specifyDELAY_CDI_ACCESS
. This setting useful to integrate non-CDI bean containers such as Spring.- Since:
- 5.3
- See Also:
-
DELAY_CDI_ACCESS
Used in conjunction with "hibernate.resource.beans.container" when CDI is used.By default, to be JPA spec compliant, Hibernate should access the CDI
BeanManager
while bootstrapping theSessionFactory
. In some cases however this can lead to a chicken/egg situation where the JPA provider immediately accesses theBeanManager
when managed beans are awaiting JPA PU injection.This setting tells Hibernate to delay accessing until first use.
This setting has the decided downside that bean config problems will not be done at deployment time, but will instead manifest at runtime. For this reason, the preferred means for supplying a CDI BeanManager is to provide an implementation of
ExtendedBeanManager
which gives Hibernate a callback when theBeanManager
is ready for use.- Since:
- 5.0.8
- See Also:
-
ALLOW_EXTENSIONS_IN_CDI
Controls whether Hibernate can try to create beans other than converters and listeners using CDI. Only meaningful when a CDIcontainer
is used.By default, Hibernate will only attempt to create converter and listener beans using CDI.
- Since:
- 6.2
- See Also:
-
CDI_BEAN_MANAGER
Deprecated.UseJAKARTA_CDI_BEAN_MANAGER
instead- See Also:
-
JAKARTA_CDI_BEAN_MANAGER
instead