Open JPA:分析查询筛选器时出错';我的查询';错误消息:没有名为“的字段”;访问授权vs“;“课堂上”;MyEntityClass“;

Open JPA:分析查询筛选器时出错';我的查询';错误消息:没有名为“的字段”;访问授权vs“;“课堂上”;MyEntityClass“;,jpa,openjpa,Jpa,Openjpa,我已经在RationalSoftwareArchitect 8.0.4中通过启用JPA1.0方面对其进行了配置。它几乎自动生成除id之外的所有实体类。所以我手动添加它们。我试图查询一个简单的表APP\u用户,该用户与访问授权表有一对多关系。有关配置和实体类,请参见下文 当我尝试执行一个简单的命名查询时 SELECT a.accessAuthorizationVs, a.empName, a.userCnum FROM AppUserEntity a WHERE a.userCnum = :

我已经在RationalSoftwareArchitect 8.0.4中通过启用JPA1.0方面对其进行了配置。它几乎自动生成除id之外的所有实体类。所以我手动添加它们。我试图查询一个简单的表APP\u用户,该用户与访问授权表有一对多关系。有关配置和实体类,请参见下文

当我尝试执行一个简单的命名查询时

SELECT a.accessAuthorizationVs, a.empName, a.userCnum FROM AppUserEntity a WHERE a.userCnum = :userCnum
它抛出一个异常

**org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "SELECT a.accessAuthorizationVs, a.empName, a.userCnum FROM AppUserEntity a WHERE a.userCnum = :userCnum". Error message: No field named "accessAuthorizationVs" in class "class com.xxx.xxx.xxx.services.integration.entity.AppUserEntity".**
    at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)
    at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.traversePath(AbstractExpressionBuilder.java:284)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getPath(JPQLExpressionBuilder.java:1382)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getPathOrConstant(JPQLExpressionBuilder.java:1337)
下面是my persistence.xml的快照:


谁能告诉我我做错了什么?该名称的字段在我的实体类中有明确的定义。此外,我还想提到,我必须增强类[后面是关于未增强类的早期错误。

在OpenJPA中创建命名查询时,请记住您编写的是JPQL,而不是本机SQL。语法类似,但略有不同

在这种情况下,我建议将命名查询更改为以下内容:

SELECT a FROM AppUserEntity a WHERE a.userCnum = :userCnum
这将返回AppUserEntity类的对象,该对象将包括AccessAuthorizationV对象集()

有关更多详细信息,请参阅