2012-03-14 9 views
0

外部キーフィールドを持つ別のテーブルにリンクされているテーブルがあり、そのフィールド自体がNULL可能です。これは、第1のテーブル内の行が、対応する行を別のテーブル内に有していてもいなくてもよいことを意味する。リンクされたオブジェクトのFKがnullの場合、リンクされたオブジェクトの属性で並べ替えますか?

簡略化のために、最初のテーブルの名前をFooとし、2番目のテーブルの名前をBarとします。今

私はFooから行を照会して、このようBarからフィールドで注文してしてみてください:

FROM Foo ORDER BY Bar.name 

結果がフィールドbar_idがnullでないFooからのみ、これらの値を示しています。 Fooの行には、対応する行がBarに含まれていない可能性があります。

現在、私はfilterMapとsortMapから値をとり、StringBufferに値を追加してHQLクエリを生成します。

Criteria APIについて聞いたことがありますが、これが過去の状況を助けることができるかどうかはわかりません。

答えて

1

あなただけの内部結合ではなく、左結合を実行する必要があります。

select foo from Foo foo left join foo.bar bar order by bar.name 
関連する問題