我有这个查询,我需要在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等价物?
答案 0 :(得分: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);