1

多対多の関係を持つ News と Tag の 2 つのエンティティがあります。News には Calendar フィールドがあります。いくつかのタグ ID とカレンダーを含む long の配列があります。ID配列で指定された少なくとも1つのタグを持つすべてのニュースと、私が所有するものよりも新しいカレンダーを持つニュースのみを取得したいと考えています。それを達成するための最良の方法は何ですか?前もって感謝します。

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

リストを渡す必要がありますが、配列ではできません。

于 2012-06-04T19:01:38.013 に答える