DogMetadataのセットを保持するオブジェクトDogがあります。
各 DogMetadata には、文字列 (" desc ") と int (" rank ")の 2 つの値があります。
犬の説明には、「小さい」が 5、「毛むくじゃら」が 2、「フレンドリー」が 9、「ダルメーション」が 11、「雑種」が 22 のように、さまざまなランクがあります。
任意の desc 値に基づいて犬を検索する必要があります (たとえば、「毛むくじゃら」または「小さい」犬を検索します)。
このクエリは、一致する犬を返しますが、それらは順不同です。
select distinct Dog as d
left join d.dogMetadata as dMeta
where ( (dMeta.desc = 'furry') OR (dMeta.desc = 'small') )
一致する DogMetadatas の合計「ランク」値で、一致する Dog オブジェクトのリストを並べ替えるにはどうすればよいですか?
私は一日中犬のようにこれに取り組んできました (「Group By」と「Order By」を試しています) が、間違ったツリーを吠えていると思います。