1

我想用 Criterias 执行这个查询,但它似乎没有按预期工作:

SELECT DISTINCT descripcion, id, familia_id, numero_departamento FROM familia WHERE familia_id IS NULL GROUP BY descripcion;

我试过这个

public List getFamiliasPadre() {
        Criteria cri = getSession().createCriteria(Familia.class);
        cri.add(Restrictions.isNull("familia.id")).setProjection(Projections.distinct(Projections.property("descripcion")))
                .setProjection(Projections.groupProperty("descripcion"));
        return cri.list();
    }

但它会返回一个结果,就像我正在执行这个查询一样

SELECT DISTINCT descripcion FROM familia WHERE familia_id IS NULL GROUP BY descripcion;

它只返回列描述。

我的问题是,我如何告诉 Hibernate 我想要我的表的所有列,但我不想重复描述列中的值?

4

1 回答 1

0

你不能在普通的 SQL 查询中做到这一点。我的意思是,您怎么可能合并仅共享一列的 2 行?例如,假设这是您的表:

  • familiaId - 描述 - otro
  • 1) null - 算法 - foo
  • 2)空 - 算法 - 酒吧

DISTINCT 不可能只应用于一列而将其余列放在一边,因为您希望这两行只有一行。

于 2013-06-20T21:23:45.833 回答