0

私は書きます

List<Candidate> candidates = (List<Candidate>)session.createQuery("from Candidate as candidate  left outer join candidate.skills as skill    where skill.id ="+ 1).list();

Candidate オブジェクトと Skill オブジェクトで構成されるオブジェクトの List を取得します

Candidates List のみを取得するにはどうすればよいですか?ここに画像の説明を入力

4

3 に答える 3

1

これが機能するかどうかは今のところ思い出せませんfrom Candidate as candidate where candidate.skills.skill.id = ?

そうでない場合は、おそらく次を使用できます。

select distinct candidate from Candidate as candidate left outer join candidate.skills as skill where skill.id = ?

于 2013-08-09T15:59:04.607 に答える
0

「左外部結合」ではなく、「結合」だけが必要だと思います。

ウィキペディアが言うように、「テーブル A と B の左外部結合 (または単に左結合) の結果には、結合条件で一致するレコードが見つからない場合でも、常に「左」テーブル (A) のすべてのレコードが含まれます。 「右」の表 (B)」。特に、外部結合はスキル テーブルからデータを取得しますが、これは望ましくないように思えます。

于 2013-08-09T15:22:24.243 に答える