[英]HQL query analog for the SQL expression
有兩個實體。 會議和主題 (相應的表格是會議和主題 )
一次會議可能包含一系列主題。
示例表結構如下:
在我的java代碼中, Meeting
類具有以下聲明:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "MeetingTopics",
joinColumns = {
@JoinColumn(name = "meetingId")},
inverseJoinColumns = {
@JoinColumn(name = "topicId")})
@Expose
private Set<Topic> topicsList;
我想得到一個會議列表(其中包含主題),其中某個主題的someTopicField
等於特定值,假設它是11
獲取我想要的SQL表達式如下:
SELECT meetings.meetingcomment,
topics.topicsubject,
topics.sometopicfield
FROM topics
INNER JOIN (meetings
INNER JOIN meetingtopics
ON meetings.meetingid = meetingtopics.meetingid)
ON topics.topicid = meetingtopics.topicid
WHERE ( topics.sometopicfield = 11 );
但是我想使用HQL表達式來解決這個問題,我沒弄清楚,我怎么能這樣做。
我已閱讀此文檔,但不明白,如何將這些示例應用於我的問題。
什么HQL表達式會像上面描述的那樣做SQL呢?
謝謝。
這樣的事情應該有效
select meeting.meetingcomment,
topic.topicsubject,
topic.sometopicfield
from Meeting meeting
inner join meeetings.topicsList as topic
where topic.sometopicfield = 11
嘗試這樣的事情:
select m.meetingcomment,
t.topicsubject,
t.sometopicfield
from Meeting as m
inner join m.topicsList as t
with t.sometopicfield = 11
如果只需要Meeting
類字段,則hql為:
select m from Meeting as m
inner join m.topicsList as t
with t.sometopicfield = 11
然后你會得到一個Meeting
對象列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.