2009-08-21 68 views
0

试图从这里这个SQL去:转换从SQL到HQL失败

SELECT DISTINCT iss.ID 
FROM   Issue AS iss 
INNER JOIN  Message ON Message.IssueID = iss.ID 
INNER JOIN  Clinician ON Clinician.UserID = Message.FromUserID 
INNER JOIN  OrgUnit ON OrgUnit.ID = Clinician.OrgUnitID 
WHERE   OrgUnit.ID = [id-number] 

要在这里HQL:

select distinct iss.id from iss 
inner join iss.messages as msg 
inner join msg.Sender.OrgUnit as org 
where org = :orgUnit 

但我不断收到 “多标识符无法绑定”

映射:
- 问题-

<bag name="messages" access="field" inverse="false" lazy="true" cascade="none"> 
    <key column="IssueID" /> 
    <one-to-many class="Message" /> 
</bag> 

- 临床医生 -

<joined-subclass name="Clinician" table="Clinician" lazy="true"> 
    <key column="UserID" /> 
    <many-to-one name="OrgUnit" column="OrgUnitID" /> 
</joined-subclass> 

+0

如果没有映射,无法帮助您使用HQL。 – 2009-08-21 08:57:56

+0

我可能应该提到患者和临床医师都是从用户身上继承的。病人没有OrgUnit道具。 – 2009-08-21 10:26:40

回答

1

刚才发现对这个问题最简单的回答是避免它。它在SQL中工作,所以为什么不在SQL中执行。