用于查找具有不同地点ID但具有相同可修改性的记录的HQL查询,用于比较记录

时间:2013-06-17 12:17:03

标签: hql

我有一个名为task的表,其中place id,category id和ammendability是列。我调用了一个方法,我传递了两个地方ids placeId1,placeId2。

第一个查询获取可修改性列表。

"select distinct(ammend) from Task where flag = :sactive;";
query.setParameter("sactive", "A");

所以这会给我三条记录说

A
B
C

现在我想进行一个查询,它将获取placeId1和placeId2,它们具有相同的可修改性。这样做是为了比较具有相同可修改性的两个地方ID。

我尝试了下面的功能。

from task where placeId = :placeId1 and placeId = :placeId2 where amendability = :ammend;

我没有得到理想的结果。

有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

这似乎不像HQL。你没有显示你的映射,所以我不得不猜测Task和Place之间有一对多的连接。

     select t from Task 
         join t.place p
         where p.id in (:placeId1, :placeId2) 
         and t.ammendability = :ammend

但这肯定不是你想要的。这只是猜测,因为当你想谈论Hibernate查询时,你真的必须包含域对象代码和映射。