0

場所ID、カテゴリID、および修正可能性が列であるタスクというテーブルがあります。2 つの場所 ID である placeId1、placeId2 を渡すメソッドを呼び出します。

最初のクエリは、修正可能リストを取得します。

"select distinct(ammend) from Task where flag = :sactive;";
query.setParameter("sactive", "A");

これにより、3つのレコードが得られます

A
B
C

ここで、同じ修正可能性を持つ placeId1 と placeId2 をフェッチするクエリを作成したいと考えています。これは、同じ修正可能性を持つ 2 つの場所 ID を比較するために行われます。

私は動作しない以下を試しました。

from task where placeId = :placeId1 and placeId = :placeId2 where amendability = :ammend;

望ましい結果が得られません。

何か助けはありますか?

4

1 に答える 1

0

これはHQLのようには見えません。マッピングが表示されないので、Task と Place の間に 1 対多の結合があると推測する必要があります。

     select t from Task 
         join t.place p
         where p.id in (:placeId1, :placeId2) 
         and t.ammendability = :ammend

しかし、これはあなたが探しているものではありません。Hibernate クエリについて話したい場合は、実際にドメイン オブジェクト コードとマッピングを含める必要があるため、これは推測にすぎません。

于 2013-06-17T19:52:56.360 に答える