是什么影响NHibernate使用外部联接而不是内部联接?

是什么影响NHibernate使用外部联接而不是内部联接?,nhibernate,join,inner-join,outer-join,Nhibernate,Join,Inner Join,Outer Join,我在一个NHibernate项目中有几个配置为使用集的一对多映射 在不执行项目的情况下,当max\u fetch\u depth设置为2时,NHibernate似乎总是使用外部联接而不是内部联接 这有什么原因吗?映射结构相当于: Category +- Document.Category +- Document.User 只是一个简单的一对多设置。如果Nhibernate进行了内部联接,这意味着不会获取没有文档的类别。 这就是nHibernate总是使用外部联接的原因,除非您专门查

我在一个NHibernate项目中有几个配置为使用
集的一对多映射

在不执行项目的情况下,当
max\u fetch\u depth
设置为2时,NHibernate似乎总是使用外部联接而不是内部联接

这有什么原因吗?映射结构相当于:

Category
  +- Document.Category
    +- Document.User

只是一个简单的一对多设置。

如果Nhibernate进行了内部联接,这意味着不会获取没有文档的类别。

这就是nHibernate总是使用外部联接的原因,除非您专门查询其他联接

如果Nhibernate进行内部联接,则意味着不会获取没有文档的类别。

这就是nHibernate总是使用外部联接的原因,除非您专门查询其他联接

这是有道理的,尽管这可能意味着NHibernate返回的行数远远超过它的需要,除非您自己编写所有集合查询?不。。你为什么这么说?您不需要不包含任何
文档的
类别
行吗?@sJohnny我知道它为什么现在这样做,因为它适合大多数情况。然而,对于许多人来说,这确实创造了一个巨大的记录集。但是我想您应该使用自定义条件查询来处理这些问题是有意义的,尽管这可能意味着除非您自己编写所有集合查询,否则NHibernate返回的行数远远超过它所需的行数?不。。你为什么这么说?您不需要不包含任何
文档的
类别
行吗?@sJohnny我知道它为什么现在这样做,因为它适合大多数情况。然而,对于许多人来说,这确实创造了一个巨大的记录集。但我想您应该使用自定义条件查询来处理这些问题