【问题标题】:NHibernate HQL subselect left join?NHibernate HQL子选择左连接?
【发布时间】:2011-03-03 15:19:19
【问题描述】:

我有以下问题,非常感谢您的帮助:

我通过 HQL 完成了所有过滤,其中一个过滤器是左外连接,它必须是子选择。所以我的想法是我可以创建一个虚拟业务对象,我想用数据填充(如果可能的话,使用 SP)并在我的左连接中使用它。

现在我怎样才能做到这一点,并且仍然在 1 个 HQL 查询中保留所有逻辑?

我想对我来说最大的问题是了解如何在所有其他 BO 都映射到表等的查询中使用此 BO(实际上并未映射到表等)。

我试图避免在实际的 C# 代码中进行任何过滤。

谢谢!

示例:

实体 A - 映射到表 A

实体 B - 映射到表 B

实体 C - 映射到表 C

实体 D - 未映射到表 - 来自 SQL 查询或 SP

HQL:

来自A pbo

内连接 B.EntityType etype

内连接C.EntityAddressList eadr

左加入D.Level lvl

【问题讨论】:

  • 您能否向我们展示您的查询、相关实体以及您想要完成的任务?您的问题目前的形式有点含糊。

标签: nhibernate nhibernate-mapping


【解决方案1】:

您不能在 HQL 中加入任意 SQL。所以我认为你试图做的事情是不可能的。您可能必须映射 D 是什么,或者使用 Session.CreateSQLQuery() 在 SQL 中编写查询。您仍然可以指定任何返回的实体。请参阅这篇文章以供参考。 http://www.nhforge.org/doc/nh/en/index.html#d0e10274

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-12
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多