如何在HQL中执行加入

时间:2012-12-31 06:32:40

标签: hibernate

我有两个表课程,而且主题都有多对多关系。

第三个表是 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

请建议我。

2 个答案:

答案 0 :(得分:3)

HQL查询使用实体及其关联。从不表和他们的专栏。并且它知道哪些表和列实体链接在一起,因此您无需在连接查询中重复它。要获取具有给定主题的所有课程,您只需要

select c from Course c
inner join c.subjects s
where s.id = :subjectId

答案 1 :(得分:0)

检查

hqlQuery="select c.field1,c.field2,s.field1 from Course c 
         inner join c.course_subject as s";

但你为什么需要这个呢?默认情况下,您可以通过映射来获取课程的科目

cource.getSubjects();