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