出现这个问题,是因为配置文件里面同时配有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>
本文解决了配置文件中同时配置javax.persistence与org.hibernate.javax.persistence导致的问题。介绍了解决方案,即移除javax.persistence依赖,并替换ejb3-persistence.jar为javax.persistence_2.0.0.jar。
269

被折叠的 条评论
为什么被折叠?



