Hibernate Validator and Traversal Resolver
Hibernate Validator and JPATraversalResolver
Monday, January 24, 2011
Hibernate Validator and Traversal Resolver: JPATraversalResolver and Bug
Hibernate Validator and Traversal Resolver: JPATraversalResolver and Bug: "I am new at validation stuff and got some experience just want to put here as i got some help this will help someone. It was using Class lev..."
Thursday, January 20, 2011
JPATraversalResolver and Bug
I am new at validation stuff and got some experience just want to put here as i got some help this will help someone.
It was using Class level validation using Hibernate-Validator 4.1.0 Final.
I had Glassfishv3, Netbeans6.9.1 and I was trying to use class level validation for few beans . However i had included the Hibernate-Validator 4.1.0 that is ok for class level validation. But as glassfishv3 was using its own bundled one. It fires the exception:
TraversableResolver.isReachable() threw an exception.https://forum.hibernate.org/viewtopic.php?f=9&t=1001354&start=0
As it was just because the JPATravesalResolver has bug and I got it of regular googling by creating a JPATraversalResolver as follows:
----------------------------------------------------------------------------------
import org.hibernate.Hibernate;
import javax.validation.Path;
import javax.validation.TraversableResolver;
import java.lang.annotation.ElementType;
public class JPATraversableResolver implements TraversableResolver {
@Override
public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
return traversableObject == null || Hibernate.isInitialized(traversableObject);
}
@Override
public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
return true;
}
}
---------------------------------------------------------------------------------------------
and using it as:
TraversableResolver traversableResolver = new JPATraversableResolver();
Validator validator = Validation.buildDefaultValidatorFactory().usingContext().traversableResolver(traversableResolver).getValidator();
---------------------------------------------------------------------------------------------
Then any Class level Constraints works for me using this validator.
I want to put all helpful links here that helped me:
1> https://forum.hibernate.org/viewtopic.php?f=9&t=1002745
2> http://musingsofaprogrammingaddict.blogspot.com/2010/06/whats-new-in-hibernate-validator-41.html
3>http://agoncal.wordpress.com/2010/03/03/bean-validation-with-jpa-1-0/
Enjoy...
It was using Class level validation using Hibernate-Validator 4.1.0 Final.
I had Glassfishv3, Netbeans6.9.1 and I was trying to use class level validation for few beans . However i had included the Hibernate-Validator 4.1.0 that is ok for class level validation. But as glassfishv3 was using its own bundled one. It fires the exception:
TraversableResolver.isReachable() threw an exception.https://forum.hibernate.org/viewtopic.php?f=9&t=1001354&start=0
As it was just because the JPATravesalResolver has bug and I got it of regular googling by creating a JPATraversalResolver as follows:
----------------------------------------------------------------------------------
import org.hibernate.Hibernate;
import javax.validation.Path;
import javax.validation.TraversableResolver;
import java.lang.annotation.ElementType;
public class JPATraversableResolver implements TraversableResolver {
@Override
public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
return traversableObject == null || Hibernate.isInitialized(traversableObject);
}
@Override
public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
return true;
}
}
---------------------------------------------------------------------------------------------
and using it as:
TraversableResolver traversableResolver = new JPATraversableResolver();
Validator validator = Validation.buildDefaultValidatorFactory().usingContext().traversableResolver(traversableResolver).getValidator();
---------------------------------------------------------------------------------------------
Then any Class level Constraints works for me using this validator.
I want to put all helpful links here that helped me:
1> https://forum.hibernate.org/viewtopic.php?f=9&t=1002745
2> http://musingsofaprogrammingaddict.blogspot.com/2010/06/whats-new-in-hibernate-validator-41.html
3>http://agoncal.wordpress.com/2010/03/03/bean-validation-with-jpa-1-0/
Enjoy...
Subscribe to:
Posts (Atom)