- Is there any configuration necessary to use Hibernate Validation custom messages
- public class BeanValidationTool {
- public void validate(Object entity) {
- TraversableResolver tr = new MyTraversableResolver();
- Validator validator = Validation.buildDefaultValidatorFactory().usingContext().traversableResolver(tr).getValidator();
- final Set<ConstraintViolation<Object>> constraintViolations = validator.validate(entity);
- if (constraintViolations.size() > 0) {
- Set<ConstraintViolation<?>> propagatedViolations = new HashSet<ConstraintViolation<?>>(constraintViolations.size());
- Set<String> classNames = new HashSet<String>();
- for (ConstraintViolation<?> violation : constraintViolations) {
- propagatedViolations.add(violation);
- classNames.add(violation.getLeafBean().getClass().getName());
- }
- StringBuilder builder = new StringBuilder();
- builder.append("validation failed for classes ");
- builder.append(classNames);
- throw new ConstraintViolationException(builder.toString(), propagatedViolations);
- }
- }
- public class MyTraversableResolver implements TraversableResolver {
- public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
- return traversableObject == null || Hibernate.isInitialized(traversableObject);
- }
- public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType) {
- return true;
- }
- }
- }`
- validator.min = must be greater than or equal to {value}
- validator.notEmpty = This field can't be empty
- <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" abstract="false"
- scope="singleton" lazy-init="default">
- <property name="basename" value="ValidationMessages"/>
- </bean>
- @Autowired
- private MessageSource messageSource;
- public String getMessage(String messageName) {
- return messageSource.getMessage(messageName, null, null);
- }
- @Component
- public class BeanValidationTool{...