Class HibernateTraversableResolver
java.lang.Object
org.hibernate.boot.beanvalidation.HibernateTraversableResolver
- All Implemented Interfaces:
TraversableResolver
Use Hibernate metadata to ignore cascade on entities.
cascade on embeddable objects or collection of embeddable objects are accepted
Also use Hibernate's native isInitialized method call.
- Author:
- Emmanuel Bernard
-
Constructor Summary
ConstructorsConstructorDescriptionHibernateTraversableResolver(EntityPersister persister, ConcurrentHashMap<EntityPersister, Set<String>> associationsPerEntityPersister, SessionFactoryImplementor factory) -
Method Summary
Modifier and TypeMethodDescriptionbooleanisCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) Determines if the Jakarta Bean Validation provider is allowed to cascade validation on the bean instance returned by the property value marked as@Valid.booleanisReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) Determines if the Jakarta Bean Validation provider is allowed to reach the property state.
-
Constructor Details
-
HibernateTraversableResolver
public HibernateTraversableResolver(EntityPersister persister, ConcurrentHashMap<EntityPersister, Set<String>> associationsPerEntityPersister, SessionFactoryImplementor factory)
-
-
Method Details
-
isReachable
public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) Description copied from interface:TraversableResolverDetermines if the Jakarta Bean Validation provider is allowed to reach the property state.- Specified by:
isReachablein interfaceTraversableResolver- Parameters:
traversableObject- object hostingtraversablePropertyornullifvalidateValueis calledtraversableProperty- the traversable propertyrootBeanType- type of the root object passed to the Validator or hosting the method or constructor validatedpathToTraversableObject- path from the root object totraversableObject(using the path specification defined by Bean Validation)elementType- eitherFIELDorMETHOD- Returns:
trueif the Jakarta Bean Validation provider is allowed to reach the property state,falseotherwise
-
isCascadable
public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) Description copied from interface:TraversableResolverDetermines if the Jakarta Bean Validation provider is allowed to cascade validation on the bean instance returned by the property value marked as@Valid.Note that this method is called only if
TraversableResolver.isReachable(Object, jakarta.validation.Path.Node, Class, Path, java.lang.annotation.ElementType)returnstruefor the same set of arguments and if the property is marked asValid.- Specified by:
isCascadablein interfaceTraversableResolver- Parameters:
traversableObject- object hostingtraversablePropertyornullifvalidateValueis calledtraversableProperty- the traversable propertyrootBeanType- type of the root object passed to the Validator or hosting the method or constructor validatedpathToTraversableObject- path from the root object totraversableObject(using the path specification defined by Bean Validation)elementType- eitherFIELDorMETHOD- Returns:
trueif the Jakarta Bean Validation provider is allowed to cascade validation,falseotherwise
-