0

このクエリがあり、hql に変換する必要がありますが、少し混乱しています。hql の「where」句に示されている条件を記述する方法がわかりません。

SELECT
    message 
FROM
    p_message 
WHERE
    message_id=(
        SELECT
            a.scene 
        FROM
            p_config a 
        INNER JOIN
            p_rec_type b 
                ON a.email_id=b.email_id 
                AND rec_type=2 
        WHERE
            a.email_type=1
    )

このSQLクエリに相当するhqlは何ですか?

4

1 に答える 1

0

以下の HQL クエリを見つけてください。p_message と p_config がドメイン オブジェクト名であり、その他が列にマッピングされる属性であると仮定します。

  String hqlQuery =" SELECT message  FROM     p_message  pm WHERE pm.message_id in (SELECT a.scene FROM p_config a INNER JOIN  p_rec_type b  ON a.email_id=b.email_id AND rec_type =:rectype          WHERE a.email_type=:emailTYpe)"; 
    query = session.createQuery(hqlQuery);
    query.setParameter("rectype", 2);
    query.setParameter("emailTYpe", 1);
于 2012-09-13T11:58:11.047 に答える