【问题标题】:How can I create this query in Hibernate?如何在 Hibernate 中创建此查询?
【发布时间】:2015-01-08 02:19:59
【问题描述】:

我有一个 SQL 查询,我想把它翻译成 Hibernate,按属性分组让我抓狂:

select idestadoseccion,estado_1,estado_2,estado_3,estado_4,estado_5,fechaalta,idpaciente from estado_secciones 
where fechaalta between ? and ? and idestadoseccion 
in (select max(idestadoseccion) from estado_secciones where (estado_1=0 or estado_2=0 or estado_3=0 
or estado_4=0) group by idpaciente)

【问题讨论】:

  • 在这种情况下我会建议你创建一个SQL查询并映射到一个类,更容易处理
  • 您的问题是什么?您尝试过什么,有什么问题?

标签: java hibernate criteria detachedcriteria


【解决方案1】:

Hibernate 将您的返回值映射到 POJO,您应该指定要在结果中看到的内容,并为 estado_secciones 和 idestadoseccion 表添加 POJO 的代码。 之后就可以将此请求重写为HQL。

【讨论】:

  • 这不能回答问题。请删除它。
【解决方案2】:

好的,我通过本机 SQL 查询解决了这个问题。问题是我无法使用休眠按属性添加组。如果我使用带有 Projection 的 detachedcriteria,Hibernate 在选择语句中包含 group by 属性

select max(idestadoseccion),idpaciente from estado_secciones where (estado_1=0 or estado_2=0 or estado_3=0 或 estado_4=0) 由 idpaciente 分组

我不希望那样。我只需要将它添加到group by子句中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多