親オブジェクトのリストを、子の値である のセットでソートしようとしています。それでは、私はFFを持っているとしましょう:親オブジェクトをその設定された子の値で並べ替える
子供の名前を持つ親1は、アバの子供の名前、ゼオン、最大で子供の名前カメオ
Parent3で
Parent2上昇しました。
降順に並べ替えると、最初にParent3が表示されるはずです。それだけで罰金、それは複数の同じ親を選択するが、それを取得し、明確ななければ
SELECT DISTINCT p FROM Parent p JOIN p.children c ORDER BY c.name desc
: これは1> 2> 3の間違った結果を取得し、私の現在のHQLです。
私は以下のようなモデルの設定があります。
public class Parent {
private Set<Child> children = new HashSet<Child>();
}
public class Child{
private String name;
}
編集:両方の親が同じchildren.name値を持っている場合、それは次の可能な値を比較しませんが、それをHQL order by within a collectionをソートするために管理します。私。
親1は、アバの子供がいる場合は、日本ゼオン
Parent2はアバ子供を持って、カメオ
昇順は、最初Parent2に優先順位をつける必要があります。
これは[hql-order-by-a-collection](https://stackoverflow.com/questions/666423/hql-order-by-within-a-collection)ですでに回答済みです助けて –
@ジョージ両親が同じchildren.name値を持っていても、次の名前の値を比較しませんが、両方ともacaciaという名前の子を持っていますが、昇順を仮定して、可能な最も早い値を見つけるまで何か – Rian