2011-04-17 81 views
3

使用可不是我現在有兩個表在冬眠如何在第

就業和生產

生產表都有它指的工作表的作業ID作業ID字段。

在冬眠如何在第

使用不

實現下面的SQL查詢

SELECT * FROM工作,其中JOB_ID沒有(從生產選擇JOB_ID);

+1

您好我得到了答案是很簡單的標準標準= session.createCriteria(BwJobs.class); DetachedCriteria detachedcriteria = DetachedCriteria.forClass(BwProduction.class); detachedcriteria.setProjection(Property.forName(「jobId」)); criteria.add(Property.forName(「jobId」)。notIn(detachedcriteria)); // Query query = session.createQuery(「from BwJobs」); jobsList = criteria.list(); – 2011-04-17 17:03:31

回答

1

您可以使用HQL:

List<Job> jobs = session.createQuery(
     "from Job where id not in (select jobId from Production)" 
    ).list(); 
0

我覺得not exist關鍵字是一個不錯的選擇。

假設我有一個名爲「長頸鹿」,ID爲主鍵,另一個名爲「工程師」的表稱爲「長頸鹿」,將「長頸鹿」表稱爲外鍵,然後以下HQL查詢工作對我來說:

from Giraffe giraffe where not exists (from Engineer as engineer where engineer.giraffe = giraffe.id)