在使用hibernate做测试时,发现运行junit测试方法时,报org.hibernate.HibernateException: Unable to get the default Bean Validation factory错误。在网上搜索了相关资料,只找到了一种,说是在hibernate.cfg.xml文件中增加一个配置项:
<property name="javax.persistence.validation.mode">none</property>
不过这样配置确实是可以的。
另外在解决这个问题的同时,我又遇到了另外一种问题,就是2个不同的项目,一个加上这个配置项是可以的,另外一个不加入此配置项是不可以的。
经过对比和手动操作发现,使用普通java项目进行测试时,不会报这种错误;当使用java web项目来进行测试时,如果添加的JavaEE 是5.0,那么也不需要添加此配置项;但是当添加的JavaEE是6.0时,就需要此配置文件。
查找资料,比较JavaEE5.0和JavaEE6.0,JavaEE6.0中增加了Jpa2.0 4大新特性,其中之一就是增加了数据验证新框架:Bean验证,因此,相比JavaEE5.0,采用JavaEE6.0测试hibernate时,需要增加上面的配置项。
JavaEE5.0和6.0的对比请参考:https://blog.csdn.net/cuiyaoqiang/article/details/51858676