1.问题描述
今天在公司给旧项目升级,从Spring2.5+Hibernate3升级到Spring4.3.13+Hibernate4.3.11,升级过程中遇到了一些问题。
其中就出现了错误java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index
2.解决方法
在网上说是因为需要将旧的jpa升级为2.1版本的,于是我将自己的jpa升级成了2.1(hibernate-jpa-2.1-api-1.0.0.Final),很遗憾的是我的问题并非是因为这个原因,而且我特意看了2.1版本的Table类中的indexes()方法,发现该方法确实存在,但项目依然报找不到该方法的错误。一时间不知道该如何处理,后来又经过多方查找,发现了关键词jar包冲突。于是我在本项目中寻找,忽然发现ejb3-persistence-1.0.2.GA.jar中的内容和hibernate-jpa-2.1-api-1.0.0.Final几乎一样,从而发现了这两个jar包冲突。于是删除ejb3-persistence-1.0.2.GA.jar后问题得到解决