【问题标题】:How to represent Postgresql bool_and and bool_or aggregate functions in JPA 2 using CriteriaQuery?如何使用 CriteriaQuery 在 JPA 2 中表示 Postgresql bool_and 和 bool_or 聚合函数?
【发布时间】:2018-07-10 00:24:45
【问题描述】:

我正在尝试使用JPA 2 为以下场景提供CriteriaQuery 编写Select 语句:

  1. 分组项目,如果至少一列是“真”,则返回真
  2. 分组项目,如果所有列都为“真”,则返回真

我注意到PostGreSQl 中有bool_andbool_or functions。这是解释这些功能的链接。 boolean aggregate functions 如何使用JPA CriteriaQuery/CriteriaBuilder? 实现此功能

【问题讨论】:

    标签: hibernate jpa criteria-api criteriaquery


    【解决方案1】:

    JPA 不支持自定义函数。它可以通过休眠 (look here) 或本机查询来实现。两者都需要对您的代码进行重大更改。

    【讨论】:

    • @DN1 请发表你的答案,我会删除我的
    【解决方案2】:

    您可以使用

    调用任何本机 SQL 函数
    CriteriaBuilder.function('bool_and', Boolean.class, args)
    

    其中“args”是您的函数采用的参数,第二个参数是返回类型(参见javadocs)。显然你会失去数据库独立性,但你可能不关心这些事情。

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2011-02-22
      • 2012-07-24
      • 2012-02-21
      • 2011-02-24
      • 1970-01-01
      相关资源
      最近更新 更多