我正在使用NHibernate开发一个Web应用程序。 您能否告诉我如何为以下SQL查询编写NHibernate查询:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

这基本上是一个自动联接,但是我不知道如何在Nhibernate中编写它。 可以说属性名称与表列名称相同。

===============>>#1 票数:1 已采纳

您可以只对原始实体执行选择,并使两个对象之间的关联为“ lazy = false”。 只要实体被映射,则两者都将被返回,并且在尝试访问该对象时您不会得到lazyloadingexception。

如果您不想映射“ lazy = false”,那么您也可以遍历结果并执行某种操作(例如询问其是否为null; if(v1.AssocatedObject == null){})以确保在会话打开时加载数据。

更新:

我认为实际上有一个比NHibernateUtil.Initialise()更好的函数,它可以初始化集合而不必在其中徘徊。

  ask by ollifant translate from so

未解决问题?本站智能推荐:

1回复

(N)休眠条件:汇总多个不同的列

关于SO的类似措辞的问题似乎都没有匹配,为此,对SO进行了很多搜索,所以让我们尝试一下: 我有一个JournalEntry实体类,如下所示: 我也有一个简单的类来保存事务摘要,如下所示: 我想做的是编写一个Criteria查询,该查询将返回Credits属性和Debits属
5回复

有没有一种方法可以定义可重用的属性到n休眠映射?

我有一种情况,我想向我的实体添加一些标准属性。 这意味着我将对所有相关实体应用例如1 int和2字符串属性。 我有100多个映射文件,大多数但不是全部将是这些新属性的主机。 在课堂上,很容易定义这一点。 但是在映射中,除了创建实用程序或xslt并应用该引用( 在休眠映射中如何定义可重用的
1回复

nhibernate加入子查询

我正在尝试对另一个表的子查询进行联接,我具有以下实体: 然后,我有以下查询以获取每个记录的最新版本: 我现在尝试为子查询的每个结果返回整个SomeClass。 到目前为止,我有这样的事情: 完成后,SQL语句应类似于以下内容 有人可以帮我为每个最高版本返回整个S
1回复

NHibernate QueryOver两次加入集合

我正在使用此QueryOver编写可排序网格的查询: 有条件地,查询将被构建为按受理人而不是按Salesperson进行排序,因此这是多次联接至同一表的原因。 运行此查询将产生以下异常: 我看过有关使用HQL进行此操作的帖子,还有一些帖子说Criteria API当前不支持
5回复

nHibernate,一个n层解决方案+请求建议

我有机会开发一个稍微复杂的项目,并一直在调查我可以用来解决这个项目的各种方法。 通常情况下,我会使用传统的3层方法,但是花了一些时间环顾各种选项之后,我有一种暗示某种ORM可能更合适,我正在考虑nHibernate。 但是,我正在寻找有关实现nHibernate的一些指导,更具体地说,我将如
2回复

NHibernate在单独的程序集中加入了子类

我有以下解决方案项目结构: Application.Core.Entities Application.Xtend.CustomerName.Entities 在核心项目中,我有一个实体客户指责。 在XTend项目中,我定义了一个实体,它将Customer子类命名为x
2回复

休眠:删除子级未引用的父级

当没有子级引用它时,我需要删除一个父级。 在Hibernate中有可能吗? (实际上,我使用的是流利的nhibernate,但我想答案是相同的) 例如,我有许多来自不同公司的客户。 当我删除公司的最后一个客户时,我也要自动删除公司详细信息。 与正常的亲子关系不同,我没有自觉选择
1回复

System.IndexOutOfRangeException:使用n-hibernate在结果中找不到指定的列

我是流利的n休眠新手。 我正在使用流畅的nHibernate连接到我的应用程序中的MYSQL数据库。 结果集的Mapping类声明如下: 我在MY SQL中创建了一个例程(过程),如下所示: 用于例程(存储过程)的hbm.xml文件是: 这也是结果集类的映射:
3回复

(N)Hibernate“每个应用程序会话”被认为是特定用例的邪恶?

好的,每个人都知道不鼓励使用(N)Hibernate的每个应用程序的全局会话。 但是我有一个非常具体的,显然是非标准的用例,它似乎是理想的解决方案。 总而言之,我的(服务器)应用程序基本上将所有持久数据保持在内存中,并且从不查询数据库以进行正常操作。 首先是数据库的唯一原因是数据在过程
1回复

如何不使用NHibernate中的主键来创建m:n关系?

假设我有下表: 如果我现在在NHibernate中建立多对多关系,则下面的<key column />属性会将PublisherArticles.VersionIndependentArticleId映射到文章类( Id )的主键列,而不是VersionIndependent