Jpa 使用JPQL查询联接表时出错

Jpa 使用JPQL查询联接表时出错,jpa,jpql,Jpa,Jpql,我试图查询一个名为Section的实体,它与一个名为students的实体有多对多关系。请参阅下面的实体部分 @实体 @Tablename=节 公共类部分实现了可序列化{ @身份证 私人互联网; 私有字符串代码; 私有字符串代码; 私人字符串学期; 私人int讲师ID; @许多酮 @JoinColumnname=instructorId,referencedColumnName=id, 可插入=false,可更新=false 私人教练; @许多酮 @JoinColumnname=courseCo

我试图查询一个名为Section的实体,它与一个名为students的实体有多对多关系。请参阅下面的实体部分

@实体 @Tablename=节 公共类部分实现了可序列化{ @身份证 私人互联网; 私有字符串代码; 私有字符串代码; 私人字符串学期; 私人int讲师ID; @许多酮 @JoinColumnname=instructorId,referencedColumnName=id, 可插入=false,可更新=false 私人教练; @许多酮 @JoinColumnname=courseCode,referencedColumnName=courseCode, 可插入=false,可更新=false 私人课程; @许多 @JoinTablename=Student_节, joinColumns=@JoinColumnname=Enrolledcrn,ReferenceColumnName=crn, inverseJoinColumns=@JoinColumnname=id,referencedColumnName=id 私人名单学生; 一个部分有很多学生,很多学生可以在同一个部分。我创建了一个名为Student_section的联接表,告诉哪些学生注册了哪个部分,这里是这个表的快照

ENROLLEDCRN ID
----------- --
   13151     6
   13151     7
   13151     8
   13151     9
   13151    10
   13151    11 
问题是:我正在尝试获取特定学生在特定学期所选章节的列表。我尝试了以下查询:

List student_Sections=em.createQueryselect s from Section s internal join s.students e +其中e.id=:userID和s.sement=:sement和e.ENROLLEDCRN=:s.crn。 设置参数学期,学期 .setParameteruserID,userID .getResultList; 但是这个错误出现了! 命名的输入参数{0}不符合Java标识符的规则。 谁能告诉我我做错了什么

以下是创建后表格部分的内容:

CRN    COURSECODE INSTRUCTORID SECTIONCODE SEMESTER
-----  ---------- ------------ ----------- -----------

14251   CMPS251              2    L51      Spring 2014
13251   CMPE263              3    L51      Fall 2013

您可以尝试使用e.ENROLLEDCRN=s.crn,已删除:我尝试了,但出现了此错误。状态字段路径“e.ENROLLEDCRN”无法解析为有效类型。您是否很理解我的问题,或者需要更多说明?@NayanWadekarNote我在不使用“e.ENROLLEDCRN=:s.crn”的情况下运行查询时,它会工作并返回g中的所有部分iven Serm这是错误的,因为我希望特定学期中的部分是针对注册在这些部分的特定用户的,我们可以从多对多连接关系@NayanWadekarI中的enrolled CRN列中了解到这一点。我认为问题在于-e.enrolled CRN,您能否尝试使用准确的列名。我在给定代码中看到了这个enrolled CRN。请注意me systemLinux/DB,列名区分大小写。是的,我尝试了此问题,但出现此错误。命名的输入参数{0}不符合Java标识符的规则。