【问题标题】:List/Set of objects in sub-query HQL子查询 HQL 中的对象列表/集合
【发布时间】:2026-01-18 12:10:02
【问题描述】:

我正在尝试使用 HQL 进行查询。是否可以在 hql 的子查询中返回对象集/列表?如果有,该怎么做。

例如:

SELECT ta1.id, ta1.name, obj FROM table1 AS ta1, table2 AS obj WHERE obj.id = ta1.id;

table2 将返回一个对象列表,我想将它们作为listset 检索。因此,响应将包含 id、name、obj 集。任何帮助将不胜感激。

【问题讨论】:

    标签: hibernate set subquery hql


    【解决方案1】:

    实现结果转换器。这里的代码是为了说明,我这里没有IDE/编译器

    class ResultTransformer : Resulttransformer
    {
        public List transformList(List collection)
        {
            ArrayList<T1> result = new ArrayList<T1>();
            for (int tuple : collection)
            {
                T1 t1 = GetT1ById(result, tuple[0]);
                if (T1 == null)
                {
                    result.add(t1)
                }
                t1.T2s.add(new T2(tuple[3], ...));
            }
            return result;
        }
    
        public object transformTuple(Object[] tuple, String[] aliases)
        {
            return tuple;
        }
    }
    

    【讨论】: