首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java-6中的javax.persistence -openjdk

java-6中的javax.persistence -openjdk
EN

Stack Overflow用户
提问于 2010-11-19 18:51:58
回答 2查看 4.2K关注 0票数 2

我正试图在我的hudson集成服务器上执行Spring Roo项目的构建(= Spring MVC + aspectj + hibernate)。

该项目已配置为使用

代码语言:javascript
复制
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>com.springsource.javax.persistence</artifactId>
<version>1.0.0</version>
</dependency>

我本地maven的构建运行良好,但服务器上的环境似乎注入了其他版本的javax.persistence,这导致了以下错误:

代码语言:javascript
复制
[ERROR] The method createQuery(String) in the type EntityManager is not applicable for the arguments (String, Class<Long>)
[ERROR] The method createQuery(String) in the type EntityManager is not applicable for the arguments (String, Class<Folder>)

构建是用maven运行的,它的配置是:

代码语言:javascript
复制
Apache Maven 2.2.1 (rdebian-4)
Java version: 1.6.0_18
Java home: /usr/lib/jvm/java-6-openjdk/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux" version: "2.6.32-5-amd64" arch: "amd64" Family: "unix"

编辑:我在本地和服务器上使用的roo版本不同:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-19 19:14:20

你在你的项目中使用JPA2吗?

JPA2是JavaEE6的一部分,在我看来,您使用的是this方法:

代码语言:javascript
复制
<T> TypedQuery<T> createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)

这个方法在JPA1 (JavaEE5)中是不存在的,您可以通过检查EntityManager来看到这一点

代码语言:javascript
复制
Query createQuery(String qlString)

存在。

所有这些都意味着Hudson正在为JPA1使用javax.persistence。我还没有用过Hudson,所以你得看看能不能在JPA2上用javax.persistence

票数 3
EN

Stack Overflow用户

发布于 2010-11-19 19:15:20

奇怪的是,它在本地工作。

您对JPA1有依赖关系,但使用JPA2 (createQuery(query, class))的方法。

检查您的本地类路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4224259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档