1

我有两个实体:新闻和标签与多对多关系。新闻有一个日历字段。我有一些带有一些标签 ID 和日历的 long 数组。我想获取所有在 ids 数组中指定的至少有一个标签的新闻,并且只有那些日历比我拥有的更新的日历。实现它的最佳方法是什么?提前致谢。

4

3 回答 3

4
select n from News n inner join n.tags tag
where tag.id in (:tagIds)
and n.theCalendarField > :calendarParam
于 2012-06-03T20:25:06.673 回答
3

您没有显示的是tagIds. 根据预期的消息,它是数组。因为您要与 Long 进行比较,所以参数的类型应该是以下之一:long、Long 或List<Long>.

于 2012-06-04T05:49:02.160 回答
2

JB Nizet 和 Mikko Maunu 的综合答案:

SELECT DISTINCT n FROM News n INNER JOIN n.tags t
WHERE t.id IN (:tagIds) AND n.timestamp > :timestamp

它需要传递 List ,数组不会。

于 2012-06-04T19:01:38.013 回答