-1

私はオラクル固有のこのクエリを書きました

Student_Masterこれらのフィールドがありますstud_id,stud_nameStudent_detailなどがcourse_id,course_name,cou_stud_idあります。

student_detailテーブルがcou_stud_idnull または空の場合、この条件の一致するすべてのレコードを選択することを意味する場合、両方のテーブルからレコードを選択する必要があります。

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

HQL クエリに書き込むにはどうすればよいですか? これは私のオリジナルのシナリオです。ADVMAgencyMaster.hbm.xml、ADVRoheader.hbm.xml に対応する 2 つの hbm ファイルがあります。対応する pojo クラスは ADVMAgencyMaster.java、ADVroheader.java です。

条件が oracle で MAMAID(+)=TROHAMAID である両方のテーブルのレコードを一致させます。

4

2 に答える 2

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 で両方のクラスを適切にマップした場合@OneToOne or @OnetoMany Relationship、学生オブジェクトに関する詳細を簡単に取得できます。

于 2013-09-02T04:35:12.993 に答える
0

これを試してください: エンティティ Student_Master にオブジェクト studentDetail を追加すると、クエリは次のようになります。

from Student_Master SM 
Left Join fetch SM.studentDetail.cou_stud_id
Where SM.stud_id = (student_id to filter)
于 2013-09-03T10:42:24.420 に答える