日期:2014-05-18  浏览次数:20723 次

Jpa 查询的问题。
用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。我该怎么弄。可以给个完整的包的结构吗?
jpa javaee jar

------解决方案--------------------
用了这么久没遇到这样的问题。都是用hibernate-jpa-2.0-api-1.0.0.Final.jar这个jar包的。
------解决方案--------------------
看帖必回,帮顶
------解决方案--------------------
如果用基于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文件中去复制头信息。