Jpa 使用JPQL查询联接表时出错
我试图查询一个名为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的联接表,告诉哪些学生注册了哪个部分,这里是这个表的快照Jpa 使用JPQL查询联接表时出错,jpa,jpql,Jpa,Jpql,我试图查询一个名为Section的实体,它与一个名为students的实体有多对多关系。请参阅下面的实体部分 @实体 @Tablename=节 公共类部分实现了可序列化{ @身份证 私人互联网; 私有字符串代码; 私有字符串代码; 私人字符串学期; 私人int讲师ID; @许多酮 @JoinColumnname=instructorId,referencedColumnName=id, 可插入=false,可更新=false 私人教练; @许多酮 @JoinColumnname=courseCo
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标识符的规则。