Package org.hibernate.engine.spi
Class LoadQueryInfluencers
- java.lang.Object
-
- org.hibernate.engine.spi.LoadQueryInfluencers
-
- All Implemented Interfaces:
Serializable
public class LoadQueryInfluencers extends Object implements Serializable
Centralize all options which can influence the SQL query needed to load an entity. Currently such influencers are defined as:- filters
- fetch profiles
- internal fetch profile (merge profile, etc)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static LoadQueryInfluencers
NONE
Static reference useful for cases where we are creating load SQL outside the context of any influencers.
-
Constructor Summary
Constructors Constructor Description LoadQueryInfluencers()
LoadQueryInfluencers(SessionFactoryImplementor sessionFactory)
LoadQueryInfluencers(SessionFactoryImplementor sessionFactory, Boolean readOnly)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
disableFetchProfile(String name)
void
disableFilter(String filterName)
void
enableFetchProfile(String name)
Filter
enableFilter(String filterName)
EffectiveEntityGraph
getEffectiveEntityGraph()
Set<String>
getEnabledFetchProfileNames()
Filter
getEnabledFilter(String filterName)
Set<String>
getEnabledFilterNames()
Returns an unmodifiable Set of enabled filter names.Map<String,Filter>
getEnabledFilters()
EntityGraph
getFetchGraph()
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph.Type
getFilterParameterType(String filterParameterName)
Object
getFilterParameterValue(String filterParameterName)
String
getInternalFetchProfile()
EntityGraph
getLoadGraph()
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph.Boolean
getReadOnly()
SessionFactoryImplementor
getSessionFactory()
boolean
hasEnabledFetchProfiles()
boolean
hasEnabledFilters()
boolean
isFetchProfileEnabled(String name)
static String[]
parseFilterParameterName(String filterParameterName)
void
setFetchGraph(EntityGraph fetchGraph)
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph.void
setInternalFetchProfile(String internalFetchProfile)
void
setLoadGraph(EntityGraph loadGraph)
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that that graph is *either* a load or a fetch graph.void
setReadOnly(Boolean readOnly)
-
-
-
Field Detail
-
NONE
public static final LoadQueryInfluencers NONE
Static reference useful for cases where we are creating load SQL outside the context of any influencers. One such example is anything created by the session factory.
-
-
Constructor Detail
-
LoadQueryInfluencers
public LoadQueryInfluencers()
-
LoadQueryInfluencers
public LoadQueryInfluencers(SessionFactoryImplementor sessionFactory)
-
LoadQueryInfluencers
public LoadQueryInfluencers(SessionFactoryImplementor sessionFactory, Boolean readOnly)
-
-
Method Detail
-
getSessionFactory
public SessionFactoryImplementor getSessionFactory()
-
getInternalFetchProfile
public String getInternalFetchProfile()
-
setInternalFetchProfile
public void setInternalFetchProfile(String internalFetchProfile)
-
hasEnabledFilters
public boolean hasEnabledFilters()
-
getEnabledFilterNames
public Set<String> getEnabledFilterNames()
Returns an unmodifiable Set of enabled filter names.- Returns:
- an unmodifiable Set of enabled filter names.
-
disableFilter
public void disableFilter(String filterName)
-
parseFilterParameterName
public static String[] parseFilterParameterName(String filterParameterName)
-
hasEnabledFetchProfiles
public boolean hasEnabledFetchProfiles()
-
isFetchProfileEnabled
public boolean isFetchProfileEnabled(String name) throws UnknownProfileException
- Throws:
UnknownProfileException
-
enableFetchProfile
public void enableFetchProfile(String name) throws UnknownProfileException
- Throws:
UnknownProfileException
-
disableFetchProfile
public void disableFetchProfile(String name) throws UnknownProfileException
- Throws:
UnknownProfileException
-
getEffectiveEntityGraph
public EffectiveEntityGraph getEffectiveEntityGraph()
-
getFetchGraph
@Deprecated public EntityGraph getFetchGraph()
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph. These have all been replaced withgetEffectiveEntityGraph()
.- See Also:
EffectiveEntityGraph
-
setFetchGraph
@Deprecated public void setFetchGraph(EntityGraph fetchGraph)
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph. These have all been replaced withgetEffectiveEntityGraph()
.- See Also:
EffectiveEntityGraph
-
getLoadGraph
@Deprecated public EntityGraph getLoadGraph()
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that graph is *either* a load or a fetch graph. These have all been replaced withgetEffectiveEntityGraph()
.- See Also:
EffectiveEntityGraph
-
setLoadGraph
@Deprecated public void setLoadGraph(EntityGraph loadGraph)
Deprecated.(since 5.4)getFetchGraph()
,getLoadGraph()
,setFetchGraph(javax.persistence.EntityGraph)
andsetLoadGraph(javax.persistence.EntityGraph)
(as well as JPA itself honestly) all make it very unclear that there can be only one graph applied at any one time and that that graph is *either* a load or a fetch graph. These have all been replaced withgetEffectiveEntityGraph()
.- See Also:
EffectiveEntityGraph
-
getReadOnly
public Boolean getReadOnly()
-
setReadOnly
public void setReadOnly(Boolean readOnly)
-
-