title: JPA 2.0 : Exception to use javax.validation.* package in JPA 2.0
body: <p>when i try to using bean validation with JPA using hibernate , the follwoing exception will occur :</p>
  
  <pre><code>Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: Chapter11] Unable to build EntityManagerFactory
  at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
  at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
  at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
  at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
  at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
  at example.test.Test.main(Test.java:18)
  
  Caused by: org.hibernate.HibernateException: Error applying BeanValidation relational constraints
  at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:219)
  at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:126)
  at org.hibernate.internal.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:306)
  at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
  at org.hibernate.ejb.EntityManagerFactoryImpl.&lt;init&gt;(EntityManagerFactoryImpl.java:94)
  at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
  ... 5 more
  
  Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:208)
  ... 10 more
  Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
  at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)
  at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)
  at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
  at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:521)
  at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:119)
  ... 15 more
  
  Caused by: java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  ... 20 more
  </code></pre>
  
  <p>i am new to use validation package and i have not knowledge of JAVA EE beans . how to use this validation package with jpa entity following is my code : </p>
  
  <pre><code> public class Employee implements Serializable , EmployeeDetail{
  
  
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue
  private int id;
  @NotNull
  private String name;
      ____________________
  
  public class Test {
  public static void main(String[] args) {
      EntityManagerFactory emf = Persistence.createEntityManagerFactory("Chapter11");
      EntityManager em = emf.createEntityManager();
      EntityTransaction etr = em.getTransaction();
  
      etr.begin();
              ------------------
  
          FullTimeEmployee flEmp = new FullTimeEmployee();
          flEmp.setName("Harmeet Singh");
          flEmp.setPension(56000);
          flEmp.setSalary(100000);
  
          ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
          Validator validator = factory.getValidator();
          validator.validate(flEmp, Employee.class);
  
          em.persist(flEmp);
      etr.commit();
  </code></pre>