当前位置: 首页 > 知识库问答 >
问题:

具有标准的独特功能

柳飞鸾
2023-03-14

我想用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我想要表中的所有列,但我不想重复Description列中的变量?

共有1个答案

鲁博瀚
2023-03-14

在普通的SQL查询中无法做到这一点。我的意思是,你怎么可能合并只有一列的两行呢?例如,假设这是您的表:

  • 熟悉-描述-otro
  • 1)null-algo-foo
  • 2)null-algo-bar

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

 类似资料:
  • 我将HiberNate 4与PostgreSQL 9一起使用。我想使用自定义postgres函数过滤行,如下所示: (我正在使用三元组搜索,一个 postgres 扩展)。 在< code >会话中使用此功能。CreateQuery()之后,我按照本教程实现了自己的< code>SQLFunction和< code > PostgreSQL diaclet 。 该函数的工作原理和外观如下: 现在到

  • 问题内容: 我尝试在按排序结果后提取得到的第一行。如果不使用,我的查询将按预期方式工作,并返回按i_version_id排序的所有结果。但是,当我添加时(如下所示),它表示附近存在语法错误。请让我知道我在做什么错。 问题答案: 如果只得到,则无关紧要。这也是无关紧要的,因为按列分组将为您提供不同的值, 但是,如果要多个,只需删除括号即可:

  • 我知道这个问题有很多答案,但我找不到一个能完全解决我问题的答案。我得到以下错误:

  • 问题内容: 我有一张桌子和and collums。 我想得到每个的总数。我正在尝试以下查询: 我也试过这个查询 但是没有得到实际的结果。我想要以上数据的结果: 问题答案: 您只需要使用而不是即可。因此,请尝试以下查询: 看到这个SQLFiddle 让您使用聚合函数,如,,, ,等而只是删除重复。

  • 问题内容: 我正在尝试实现一组功能。上下文是事件服务器;我想防止(或至少警告)为一个事件多次添加同一处理程序。 我已经读过,由于易于检查成员资格,因此映射是惯用的集: 我在使用此范式进行功能时遇到了一些麻烦。这是我的第一次尝试: 很显然,这是行不通的:在Go中,函数不是引用类型,尽管有些人会告诉你它们是。 我有证明,尽管我们不需要它,因为语言规范指出除映射,切片和指针以外的所有内容都是按值传递的。

  • 我注意到当涉及到std::function对象和std::bind时,std::is_convertible和std::is_assignable会产生一些奇怪的结果。 我假设当这些函数返回true时,就可以进行转换了。还是我错过了什么? 下面的代码在不同的编译器上打印不同的结果,我希望它打印0,因为这些类型不能赋值。 它在以下编译器上打印0: null 它在以下编译器上打印 1: 4.7 VC