次のHQLステートメントがあります。
Query q = session.createQuery(
"SELECT ze " +
"FROM NormaleZone zo " +
"LEFT JOIN zo.zaal za " +
"LEFT JOIN za.vertoningen v " +
"LEFT JOIN zo.normaleZetels ze " +
"WHERE v = :vertoning " +
" AND zo = :zone " +
" AND ze NOT IN (SELECT t.zetel FROM Ticket t WHERE t.vertoning = :vertoning)"
);
私が抱えている問題は、doや。と同様に、NormaleZoneから継承することです。ZoneHandicapZoneLoveZone
私がやりたいことは次のとおりです。
Query q = session.createQuery(
"SELECT ze " +
"FROM Zone zo " +
"LEFT JOIN zo.zaal za " +
"LEFT JOIN za.vertoningen v " +
"LEFT JOIN zo.??? ze " +
"WHERE v = :vertoning " +
" AND zo = :zone " +
" AND ze NOT IN (SELECT t.zetel FROM Ticket t WHERE t.vertoning = :vertoning)"
);
あなたは私がそこに入れたのを見ることができますzo.???。このHQLの目的は、映画館でまだどの席が空いているかを調べることです。問題は、抽象クラスZoneにシートがないzeことです(シートのエイリアスになります)。
Zoneそのメソッドで着信オブジェクトを確認し、ゾーン用とシート用の2つの文字列を作成して、それらをHQL文字列に連結する以外に、これを解決する方法がわかりません。