0
我有兩個不同的表格神器和分類。我想檢索沒有分類的工件列表。分類表包含ID(PK),Artifact_Id(外鍵),活動(0/1),而工件表包含ID(PK),名稱。每件神器可以有很多分類。我要回文物的名單時,有沒有分類爲它(即分類並不包含神器或當工件都有分類,但所有情況下都是未激活(0))如何在HQL查詢中檢查NULL或無效
例如
Artifact
Id Name
1 xyz
2 pqr
3 abc
Classification
Id Artifact_id active
a1 1 0
a2 1 0
a3 1 0
a4 3 0
a5 3 1
在上述情況下,由於一個實例處於活動狀態(1),所以工件1和2沒有分類,但3具有分類。所以我想返回1和2.我不知道如何查詢這個。 這是我曾嘗試(雖然不是太多,是錯誤的)
def list = findAll("from artifact as a full outer join classification as c on a.id=c.artifact_id where active == 0 OR c.aritfact_id is NULL,[max:limit, offset:startPos])
我也試過在SQL東西
select * from ARTIFACT full outer join classification on artifact.id = classification.ARTIFACT_ID where sum(classification.active) == 0 OR classification.aritfact_id is NULL
非常感謝這幫了我很多:) – krs8785 2014-10-20 14:53:52
你會有任何機會知道如何在hql中工作? – krs8785 2014-10-20 15:10:05
NOT IN由HQL支持,因此只需引用對象就可以工作,如下所示:從artifact art中選擇art,其中art.Id不在(從c中選擇c.Artifact_id,其中c.active = 1) – Alla 2014-10-21 10:49:15