nhibernate - 返回 Bag 属性时 HQL 查询中的重复行

标签 nhibernate hql

在我的查询中,我使用多个表,其中一些表无法设置为正常的 nhibernate 关系,因此我被迫返回由各个列而不是实体实例组成的行。我想要返回的属性之一是包/列表,我的查询如下所示:

从父级 p、OtherClass o、... 中选择 p.ID、p.SomeOtherField、elements(p.MappedBagField)、o.AnotherField ...

查询有效,但我遇到的问题是,当包包含多个链接记录时,我会返回多行。有什么简单的方法可以阻止这种情况发生吗?我尝试了不同的 p.ID,但没有任何区别

[编辑]Criteria API 是否更适合这个?[/编辑]

最佳答案

看起来您只是想获取包含已加载集合的父项列表,以及来自其他实体的一些数据,这是正确的吗?

在这种情况下:

var parents = session.CreateQuery(@"
    select p, o
    from Parent p, OtherClass o
    join fetch p.MappedBagField
    ...")
    .SetResultTransformer(Transformers.DistinctRootEntity)
    .List<object[]>();

结果的每一项都有两个元素,[0]是Parent,[1]是OtherClass。

关于nhibernate - 返回 Bag 属性时 HQL 查询中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107818/

相关文章:

java - hibernate 多对多

Nhibernate queryover order by random

NHibernate QueryOver Have 子句

java - hibernate 更新查询中的值未更新

json - Spring MVC 3.1.2 + jackson 2 : LazyInitializationException when lazily initialize a collection - no session or session was closed

java - HQL 不会忽略列中包含空白字符串的值

nHibernate - 急切地获取已经填充了子列表的列表

sql - Nhibernate CreateSQLQuery 错误 - ',' 附近的 SetParameterList 语法不正确

c# - 如何使用 Linq 提供程序在 NHibernate 3 中按子集合属性排序?

java - JPA/hibernate : code based validation of jpa queries