gpt4 book ai didi

nhibernate - 多对多集合中的 Nhibernate 和 Fluent Nhibernate 的内连接或右外连接

转载 作者:行者123 更新时间:2023-12-04 15:04:48 27 4
gpt4 key购买 nike

如何强制 NHibernate 在多对多集合上执行 RIGHT 外连接或 INNER 连接而不是 LEFT 外连接?

我想这样做的原因是因为过滤应用于集合元素。使用左连接,您将获得与未过滤查询相同的返回行数,但过滤掉的元素仅对所有字段显示 NULL。但是,使用右连接,查询会返回正确数量的行和元素。

我希望人们可以在集合映射中的某处指定连接..

最佳答案

我认为不可能在集合映射中指定右连接或内部连接。 fetch 的唯一选项子句是默认的左外连接和顺序选择。

问题在于,当您创建映射时,NHibernate 需要知道如何从连接的左侧获取任意根项的集合元素。使用右连接或内连接,返回的集合中可能不存在根对象,因此您会被困在这一点上。

如果过滤条件是静态的,您可以指定 where映射中的子句。我认为这将是适合您情况的推荐解决方案。

一种解决方法是在您的对象中将集合设为私有(private),然后创建另一个调用 HQL 查询以实现内部联接并返回该集合的属性。这个返回的集合将具有您想要的语义,但您需要单独的方法来从集合中添加或删除项目。

关于nhibernate - 多对多集合中的 Nhibernate 和 Fluent Nhibernate 的内连接或右外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com