多対多の関係を持つ News と Tag の 2 つのエンティティがあります。News には Calendar フィールドがあります。いくつかのタグ ID とカレンダーを含む long の配列があります。ID配列で指定された少なくとも1つのタグを持つすべてのニュースと、私が所有するものよりも新しいカレンダーを持つニュースのみを取得したいと考えています。それを達成するための最良の方法は何ですか?前もって感謝します。
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
リストを渡す必要がありますが、配列ではできません。
于 2012-06-04T19:01:38.013 に答える