如何将此Oracle Query重写为hibernate Query?

时间:2013-09-02 04:29:39

标签: oracle hibernate hql

我在oracle特定的

中写了这个查询

Student_Master包含这些字段stud_id,stud_nameStudent_detailcourse_id,course_name,cou_stud_id等等。

我需要在student_detail空的cou_stud_id表中选择两个表中的记录,或者用空表示选择此条件的所有匹配记录。

SELECT stud_id,stud_name,course_name ,course_id FROM STUDENT_MASTER,STUDENT_DETAIL WHERE stud_id(+)=cou_stud_id.

如何写入HQL查询? 这是我的原创场景 我有两个hbm文件ADVMAgencyMaster.hbm.xml,ADVRoheader.hbm.xml对应的pojo类是ADVMAgencyMaster.java,ADVroheader.java。

                                                                                                                                                               

匹配两个表中的记录条件是oracle.Pls中的MAMAID(+)= TROHAMAID告诉HQL中的writer如何

2 个答案:

答案 0 :(得分:0)

这可能对你有帮助,它会找到所有有或没有细节的学生。

from Student_Master SM Left Join Student_detail SD on SM.stud_id = SD.cou_stud_id
Where SM.stud_id = (student_id to filter)

如果你在Hibernate Using(@OneToOne or @OnetoMany Relationship)中正确地映射了这两个类,你可以轻松获得有关学生对象的详细信息。

答案 1 :(得分:0)

试试这个: 添加到您的实体Student_Master对象studentDetail,因此查询变为:

from Student_Master SM 
Left Join fetch SM.studentDetail.cou_stud_id
Where SM.stud_id = (student_id to filter)