Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与hibernate entitymanager一起使用哪个版本的openEJB_Hibernate_Openejb - Fatal编程技术网

与hibernate entitymanager一起使用哪个版本的openEJB

与hibernate entitymanager一起使用哪个版本的openEJB,hibernate,openejb,Hibernate,Openejb,我一直在尝试在项目上正确地使用openEJB进行单元测试。我从现有项目复制了大部分配置,该项目使用hibernate entitymanager版本3.3.2.GA,而新项目使用版本3.4.0.GA。当我指定entity manager的3.3.2.GA版本时,我的单元测试可以工作,但当使用3.4.0.GA时,单元测试不能工作 以下是与单元测试相关的pom设置: <dependency> <groupId>org.apache.openej

我一直在尝试在项目上正确地使用openEJB进行单元测试。我从现有项目复制了大部分配置,该项目使用hibernate entitymanager版本3.3.2.GA,而新项目使用版本3.4.0.GA。当我指定entity manager的3.3.2.GA版本时,我的单元测试可以工作,但当使用3.4.0.GA时,单元测试不能工作

以下是与单元测试相关的pom设置:

        <dependency>
        <groupId>org.apache.openejb</groupId>
        <artifactId>javaee-api</artifactId>
        <version>5.0-2</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.openejb</groupId>
        <artifactId>openejb-server</artifactId>
        <version>3.1.1</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <artifactId>org.apache.openjpa</artifactId>
                <groupId>openjpa</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>3.3.2.GA</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
</dependencies>

您使用的是哪一个数据库,有人提到您在查询中有
ROWNUM
,这可能是Oracle特定的关键字。您可以发布查询,因为它没有得到正确的解析。在上面发布了请求的查询。我也开始在其他查询中遇到类似的错误。这可能是hibernate entitymanager的错误吗?您是否为HSQLDB正确指定了方言、驱动程序等配置。好的,您的上述评论帮助我找到了问题所在。我将HSQL指定为方言,但位置不对!
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
... 30 more
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2231)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
... 43 more
Caused by: java.sql.SQLException: Column not found: ROWNUM in statement [select * from ( select user0_.id as id4_, user0_.MOBILE as MOBILE2_4_, user0_.CHANGED_BY as CHANGED3_4_, user0_.CHANGED_ON as CHANGED4_4_, user0_.PASSWORD_ANSWER as PASSWORD5_4_, user0_.PASSWORD_QUESTION as PASSWORD6_4_, user0_.REG_KEY as REG_KEY7_4_, user0_.USER_NAME as USER8_4_, user0_.VERSION as VERSION4_ from USER user0_ where user0_.USER_NAME=? ) where rownum <= ?]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:250)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:250)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1573)
at org.hibernate.loader.Loader.doQuery(Loader.java:696)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
... 51 more
"SELECT u FROM User u WHERE u.name = :name"