在使用Struts2+JPA+Spring3的时候,遇到这样一个错误
JPA java.lang.NoSuchFieldError NONE
最后终于找到答案了,原因如下:错误是由javax.persistence.LockModeType造成的。
hibernate-jpa-2.0-api-1.0.0.Final.jar和Java EE 5Libraries/javaee.jar都存在此类。
但二者中代码却有差异,在hibernate-jpa-2.0-api-1.0.0.Final.jar存在NONE域,在javaee.jar中不存在NONE域。
hibernate3.5.4实现中,需要调用有NONE域的LockModeType类,这里显然是使用javaee.jar中的LockModeType类。
解决方法:
将Myeclipse中Java EE 5 Libraries从构建路径中去除。
perferences->myeclipse->Java Enterprise Project->LibrarySets->Remove JavaEE