【问题标题】:Converting from SQL to HQL fail从 SQL 转换为 HQL 失败
【发布时间】:2009-08-21 08:47:38
【问题描述】:

试图从这里开始这条 SQL:

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>

【问题讨论】:

  • 在没有映射的情况下无法帮助您处理 HQL。
  • 我可能应该提到 Patient 和 Clinician 都继承自 User。患者没有 OrgUnit 属性。

标签: c# sql nhibernate hql inner-join


【解决方案1】:

刚刚发现解决此问题的最简单方法是避免它。它确实可以在 SQL 中工作,所以为什么不直接在 SQL 中进行呢。

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多