0

我有一个名为任务的表,其中位置 ID、类别 ID 和可修改性是列。我调用了一个方法,其中传递了两个地点 ID 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;

我没有得到想要的结果。

有什么帮助吗?

4

1 回答 1

0

这看起来不像 HQL。您没有显示您的映射,所以我不得不猜测 Task 和 Place 之间存在一对多的连接。

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

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

于 2013-06-17T19:52:56.360 回答