我有两张表Course,和Subject都有很多关系。如何在HQL中进行加入
第三张表是Course_Subject。
我必须执行join
才能获取所有课程。
我试图联接表所示:
hqlQuery="FROM Course c inner join fetch c.Course_Subject as s where c.id=s.courseId and s.subjectId=:subjectId";
却是露出NullpointerException
。
请给我建议。
我有两张表Course,和Subject都有很多关系。如何在HQL中进行加入
第三张表是Course_Subject。
我必须执行join
才能获取所有课程。
我试图联接表所示:
hqlQuery="FROM Course c inner join fetch c.Course_Subject as s where c.id=s.courseId and s.subjectId=:subjectId";
却是露出NullpointerException
。
请给我建议。
入住这
hqlQuery="select c.field1,c.field2,s.field1 from Course c
inner join c.course_subject as s";
但是为什么你需要这个?默认情况下,您可以通过映射获得课程科目,如
cource.getSubjects();
其实我想通过使用主题过滤课程。 –
,你可以在主题类中使用映射。 'subject.getCourses();' – vels4j
当我将Course Class Mapping设置为Subject Class时,它显示如下错误: - >在对象图中检测到一个循环。这将导致无限深的XML:[email protected] - > [email protected] - > [email protected]这是什么? –
HQL查询使用实体及其关联。从来没有表和他们的专栏。它知道哪些表和列实体链接在一起,所以你不需要在连接查询中重复它。要获取具有给定科目的所有课程,你只需要
select c from Course c
inner join c.subjects s
where s.id = :subjectId
@但如何改善它? –
谢谢! Vels4j。 –