Hibernate の session.createSQLQuery で以下のクエリを使用しようとしています。userに対応する Entity オブジェクトには、 addressという属性があります。アドレスオブジェクトは、テーブル 'user' の 5 つのフィールドから作成されます。SQLQuery を使用しない場合、自動的に魔法のように入力されます。ただし、SQLQuery がないと、以下に示す目的の結合から得られるすべての情報を取得できません。ユーザーエンティティオブジェクトには、使用して埋めている accessPlan のような属性もあります
.addEntity("accessPlan", AccessPlan.class)
クエリ:
SELECT
user.*,
ap.*,
country.*,
auth.*,
GROUP_CONCAT(coup.code SEPARATOR ' ') coupons
FROM
user
INNER JOIN access_plan ap ON (user.access_plan = ap.id)
INNER JOIN country ON (user.country=country.code)
LEFT JOIN user_auth auth ON (user.id = auth.userid)
LEFT JOIN (
SELECT
trans.user_id,coupon.code
FROM
payments_transaction AS trans
INNER JOIN payments_coupon coupon ON (trans.payments_coupon_id=coupon.id)
) coup ON (user.id=coup.user_id)
GROUP BY user.id;
SQLQuery を使用しているとき に、構成された住所オブジェクトを埋める最も簡単な方法は何ですか? または 、このようなクエリに SQLQuery を使用しないようにする方法はありますか?