出现这个问题,是因为配置文件里面同时配有javax.persistence 和 org.hibernate.javax.persistence
只需要将第一个配置去掉即可,因为ejb3-persistence.jar是用于JPA1.0的,而ejb3-persistence.jar里面的PersistenceUnitInfo接口没有定义方法 getValidationMode;因此需要将ejb3-persistence.jar换成javax.persistence_2.0.0.jar。此处因为使用Hibernate,所以将 javax.persistence 去除,直接依赖使用 org.hibernate.javax.persistence 。
网上解决方案:
Instead of following
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
for example one offered by Hibernate can be used:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>