2017-12-12 5 views
0

私のクエリは、hqlを使用して、いくつかの列によって順序付けられた値を返します。内部結合を自動的に行うことによって注文します。

問題は、私がorder byを自動的に内部結合するときです。 例:

表Usuarioが列を持ってidAssociado:

select u.nome 
from Usuario u 
order by u.associado desc, 
     u.associado.suspended asc, 
     u.associado.dateOut asc 

私も列associado(ID)Usuarioからすべてのレコードを返したいがnullですが、最初に中断によって順序付けnullでない人たち持ち込みますとdateOut。

Iがorder by suspended and dateOutの場合、内部結合を行い、Usuarios where u.associado is not nullのみを返します。

このhqlをどのようにして予期した結果で実行できますか?

おかげ

+0

'u.associado'は、カラムへの有効な参照である場合には、' u.associado.suspended'と 'u.associado.dateOut'がないこともできます有効な参照になります。 –

+0

私は何が起こっているのか理解していますが、このシナリオでは予期した結果をアーカイブする方法はわかりません。 – Emerick

答えて

1

HQLあなたのクラスのあなたの財産は、POJOのオブジェクトである場合INNER JOIN操作を行います。

Usuarioクラスには、タイプAssociadoassociadoというプロパティがあります。

したがって、associadoオブジェクトのカプセル化されたプロパティをポイントすると、HQLのINNER JOINが適用されます。

associadoがnullの場合にすべてのusuarioオブジェクトが必要な場合は、なぜassociauのカプセル化された情報に関する情報を注文するのですか?私にとって

、あなたがなります照会:

select u.nome 
from Usuario u 
where u.associado is null 
+0

私もnullではない人が欲しい...とにかく...どのように、あなたのsktrechから、私はu.associado.suspendedとu.associado.dateOutで注文データを返すことができますか?私の主張は、これらのitensを使用して注文すると、自動的に非ヌル値を削除する...私は理由を理解するが、それを解決する方法は? – Emerick

関連する問題