2012-07-24 46 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