0

私は正しい結合でhqlを実行しています:

select sum(banks.money) from banks right join banks.account where banks.account = :account and (banks.date < :date or banks.date is null) group by banks.account, banks.date

hibernateはそれを次のようなものに変換します。

select sum(banks.money) from banks right join accounts on banks.account_id = accounts.account_id where banks.account_id = someId and (banks.date < someDate or banks.date is null) ....

hibernateがaccountsテーブル(banksテーブルにないアカウントを持つことができる)からaccount_idフィールドを取得し、banksテーブルからは取得しないようにします。

結合テーブルのどの列で実行するかを休止状態に明示的に指示する方法はありますか?

4

1 に答える 1

0

フォーマットが役立ちます...とにかく...

select sum(banks.money) 
from banks 
    right join banks.account acct 
where acct = :account 
  and (banks.date < :date or banks.date is null) 
group by banks.account, banks.date

個人的には、結合条件に追加します。

select sum(banks.money) 
from banks 
    right join banks.account acct 
        with acct.id = :accountId
where banks.date < :date 
   or banks.date is null
group by banks.account, banks.date

どちらの場合も、結合されたアソシエーションに与えられたエイリアスと修飾子としてのその使用に特に注意してください

于 2012-09-26T15:18:49.110 に答える