Bean Validation : Hibernate Validator framework

Bean Validation with Hibernate Validator framework

JSR 303

This JSR will define a meta-data model and API for JavaBeanTM validation based on annotations, with overrides and extended meta-data through the use of XML validation descriptors.

JSR 349

Bean Validation standardizes constraint definition, declaration and validation for the Java platform. For more information on Bean Validation and how to participate, check out 

Hibernate Validator

Hibernate Validator 5.x is the reference implementation for JSR 349 - Bean Validation 1.1 of which Red Hat is the specification lead.

Sample Implementation.

In the sample implementation, we have a class with validation annotations. A test class to validate the object and to print the error messages at the console. The code is completely self explanatory.

package com;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Email;

public class User {

	private String firstName;
	private String lastName;
	@Max(message="Age should be max 2 digits", value = 2)
	private short age;
	private String email;
	private Date dob;
	@Pattern(regexp = "\\d{2}\\\\\\d{2}\\\\\\d{4}", message="Invalid date")
	public String getDateString(){
		String dateString = new SimpleDateFormat("dd\\mm\\yyyy").format(dob);
		System.out.println("DateString :: "+dateString);
		return dateString;
	@NotNull(message="First name is mandatory.")
	public String getFirstName() {
		return firstName;
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	@Pattern(regexp="[a-zA-Z]{1,5}$",message="Last name should not contain special characters")
	public String getLastName() {
		return lastName;
	public void setLastName(String lastName) {
		this.lastName = lastName;
	public short getAge() {
		return age;
	public void setAge(short age) {
		this.age = age;
	@Email(message="Not a valid email address")
	public String getEmail() {
		return email;
	public void setEmail(String email) { = email;
	public Date getDob() {
		return dob;
	public void setDob(Date dob) {
		this.dob = dob;

package com;

import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

public class ValidatorTest {
	public static void main(String[] args) {

	public static void validate(){
		User user = new User();
		user.setDob(new java.util.Date());
		ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
		Validator validator = vf.getValidator();
		Set<ConstraintViolation<User>> violations = validator.validate(user);
		for(ConstraintViolation<User> c: violations){
			System.out.println(c.getPropertyPath() +" - "+  c.getMessage());


INFO Version:27 - HV000001: Hibernate Validator 5.0.1.Final                                                          
DateString :: 03\21\2013
age - Age should be max 2 digits
email - Not a valid email address
firstName - First name is mandatory.


Post a Comment

Popular posts from this blog

Log4j multiple WAR files in single EAR configuration

Java NIO2 - Watching a directory for changes. FileWatcherService.

Ubuntu / kubuntu - Laptop key board cursor jumping issue