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