我有這三個表。hql從多對一的關係表中選擇表記錄
UserTrackRecord -> id, profile_id(fk), object_profile_id(int)
Profile and -> id
ProfilePersonalInfo-> id, profile_id(fk), firstname, lastname
的PROFILE_ID和object_profile_id是爲目的,當有人向我友好的請求,object_profile_id是我的個人資料的ID和外鍵是發件人的配置文件ID。
一個配置文件有許多usertrackrecords。 一個配置文件有一個profilepersonalinfo(有兩個更多的表,就像profilepersonalinfo這是basicinfo和backgroundinfo具有profileid爲fk)。
我有我自己的個人資料ID(objecct_profile_id)說1.現在,我想獲取請求發件人的姓氏,姓氏和來自其他兩個表的信息。
我的所有SQL查詢
select utr.profile_profile_id, ppi.dob, ppi.first_name, ppi.last_name, "
+ "pbi.religion, pbi.city_birth, pbi.country_birth from "
+ "user_track_record utr "
+ "inner join profile_personnel_info ppi on ppi.profile_profile_id=utr.profile_profile_id "
+ "inner join profile_background_info pbi on pbi.profile_profile_id=utr.profile_profile_id "
+ "where utr.object_profile_id=1
這是工作的罰款。
在HQL,當我簡化我的查詢最多,成爲
Select * from UserTrackRecord utr inner join ProfilePersonalInfo ppi
但ID沒有工作,它給我的外或完全加入必須遵循的路徑表達式查詢例外。
我之前發佈了同樣的問題,但總得有人去投它:(因此,我做了一些多個R & d,但沒有找到一個解決方案。
您的帖子沒有直接鏈接到JSF,我刪除了該標籤並添加了Java代替。 –
HQL與實體一起工作。根據這些實體,而不是描述您的表格,向我們展示實體及其關聯,並告訴我們您想從查詢返回的內容。 –