我有两个实体:具有多对多关系的新闻和标签。新闻有一个日历字段。我有一些带有一些标签ID和日历的长片。我想得到所有Newses,它们至少有一个Tag在ids数组中指定,只有那些拥有更新的Calendar然后我拥有的那个。实现它的最佳方法是什么?提前谢谢。
答案 0 :(得分:3)
select n from News n inner join n.tags tag
where tag.id in (:tagIds)
and n.theCalendarField > :calendarParam
答案 1 :(得分:3)
您未展示的内容是tagIds
的类型。根据预期的消息,它是阵列。因为您要与Long进行比较,所以参数类型应为以下之一:long,Long或List<Long>
。
答案 2 :(得分: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,数组不会传递。