2012-07-24 250 views
-1
I am getting this Exception in Open JPA. 

<openjpa-1.2.3-SNAPSHOT-r422266:1295280 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "select a from Test a where a.something='D10584707'". Error message: The name "Test" is not a recogniz entity or identifier. Known entity names: [] 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:180) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:150) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:225) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:195) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:188) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$600(JPQLExpressionBuilder.java:69) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1756) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:56) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:156) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:658) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:639) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1492) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:243) 
[7/24/12 8:32:06:228 EDT] 00000015 SystemErr  R at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294) 

这里是我的坚持XMLorg.apache.openjpa.persistence.ArgumentException:发生错误而解析查询过滤器

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
     http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
    version="1.0"> 
    <persistence-unit name="MyDataSource"> 
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
     <jta-data-source>jdbc/MyDatasource</jta-data-source> 
     <class>com.vo.Test</class>  
    </persistence-unit> 

我有我的扭曲作为Web应用程序归档应用程序,它工作正常。但是,如果我将EJB3的相同应用程序作为我遇到问题的地方。

我正在上为7.0

回答

1

我得到了我的问题的解决方案

我失踪RuntimeUnenhancedClasses属性在我的persistence.xml

现在我的坚持XML看起来像这样

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
version="1.0"> 
<persistence-unit name="MyDataSource"> 
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
    <jta-data-source>jdbc/MyDatasource</jta-data-source> 
    <class>com.vo.Test</class>  
    <properties> 
    <property name="RuntimeUnenhancedClasses" value="supported"/> 
    <property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE" /> 
    </properties> 
</persistence-unit> 
+1

请,请,请不要设置openjpa.RuntimeUnenhancedClasses来支持。这是一个半实施的功能,会导致你的问题。你的根本问题是你没有增强你的实体。这就是说,因为你正在WebSphere中运行,容器钩子应该会增强你为你的实体。 – Rick 2012-07-25 15:26:34

1

我有同样的问题,通过更正jpql来解决问题。

是:SELECT c FROM NIMBUSOrganizationUnitEntityObject c WHERE **uuid** = :uuid

到:SELECT c FROM NIMBUSOrganizationUnitEntityObject c WHERE ***c.uuid*** = :uuid