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

내가 웹 응용 프로그램 아카이브로 내 응용 프로그램을 워프가하고 노력하고 있습니다 발생했습니다. 하지만 EJB3와 같은 응용 프로그램을 왜곡하면 문제가 발생합니다. 내 문제의 해결을 얻었다 7.0

답변

1

나는 WAS에서 실행하고

내가 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

1

동일한 문제가있어서 jpql을 수정하여 문제가 해결되었습니다.

했다 : SELECT c FROM NIMBUSOrganizationUnitEntityObject c WHERE **uuid** = :uuid

에 : 지원에 SELECT c FROM NIMBUSOrganizationUnitEntityObject c WHERE ***c.uuid*** = :uuid