用jpa的api测试增删改都没问题。但是测试jpql查询的时候就报错java.lang.NoSuchFieldError: NONE
后来发现是我的项目中有hibernate-jpa-2.0-api-1.0.0.Final.jar和javaEE5.0的jar。在增删改的时候我发现一直用的是javaEE5中的javax.persistence 的api。但使用jpql查询的时候就报错。当我把javaee5删掉后就自动使用hibernate-jpa-2.0-api-1.0.0.Final.jar里面的javax.persistence 的api了。请问我要是既想用javaee5的api和jpa的api。我该怎么弄。可以给个完整的包的结构吗?jpajavaeejar

解决方案 »

  1.   

    用了这么久没遇到这样的问题。都是用hibernate-jpa-2.0-api-1.0.0.Final.jar这个jar包的。
      

  2.   

    如果用基于hibernate的jpa,我建议不要用hibernate-jpa-2.0-api-1.0.0.Final.jar,而用你说的那个javax-persistence.jar,因为这个包要比前者的那个包要全,主要还有对persistence.xml中xsd文件规范,而前者是没有的。所以加包的时候,可以不加hibernate-jpa-2.0-api-1.0.0.Final.jar,而用javax-persistence.jar来代替它。我都是这么用的,也没出现什么错误。写persistence.xml直接去那个xsd文件中去复制头信息。
      

  3.   

    用你说的那个javax-persistence.jar可以是可以。但是我把MyEclipse的java EE 5 Libraries 放进去之后就又报错。冲突了。你的没有嘛
      

  4.   

    用你说的那个javax-persistence.jar可以是可以。但是我把MyEclipse的java EE 5 Libraries 放进去之后就又报错。冲突了。你的没有嘛我都是用eclipse写java web项目,没看到有java EE 5 Libraries啊,擦怎么回事???