Class HibernateTraversableResolver

java.lang.Object
org.hibernate.boot.beanvalidation.HibernateTraversableResolver
All Implemented Interfaces:
TraversableResolver

public class HibernateTraversableResolver extends Object implements 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 Details

  • Method Details

    • isReachable

      public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
      Description copied from interface: TraversableResolver
      Determines if the Jakarta Bean Validation provider is allowed to reach the property state.
      Specified by:
      isReachable in interface TraversableResolver
      Parameters:
      traversableObject - object hosting traversableProperty or null if validateValue is called
      traversableProperty - the traversable property
      rootBeanType - type of the root object passed to the Validator or hosting the method or constructor validated
      pathToTraversableObject - path from the root object to traversableObject (using the path specification defined by Bean Validation)
      elementType - either FIELD or METHOD
      Returns:
      true if the Jakarta Bean Validation provider is allowed to reach the property state, false otherwise
    • isCascadable

      public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
      Description copied from interface: TraversableResolver
      Determines 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) returns true for the same set of arguments and if the property is marked as Valid.

      Specified by:
      isCascadable in interface TraversableResolver
      Parameters:
      traversableObject - object hosting traversableProperty or null if validateValue is called
      traversableProperty - the traversable property
      rootBeanType - type of the root object passed to the Validator or hosting the method or constructor validated
      pathToTraversableObject - path from the root object to traversableObject (using the path specification defined by Bean Validation)
      elementType - either FIELD or METHOD
      Returns:
      true if the Jakarta Bean Validation provider is allowed to cascade validation, false otherwise