【问题标题】:JPA native query on Hibernate for distinct on columnHibernate 上的 JPA 本机查询以获取不同的列
【发布时间】:2018-07-11 07:19:11
【问题描述】:

如何用 fk 区分列。 DB:postgres。

entityManager.createNativeQuery("SELECT DISTINCT ON (a.fk_id), a.* FROM Appointment a WHERE a.fk_id IN (:ids)")
                .getResultList()

错误:SQLGrammarException:无法提取结果集

但在 jdbc 上它可以工作。

【问题讨论】:

  • 你为什么使用 DISTINCT ON (a.fk_id) 而不是 DISTINCT (a.fk_id)
  • 它可以返回约会类的所有字段。但是简单的 Distinct 只返回 a.fk_id 作为 Long 类。

标签: sql hibernate jpa


【解决方案1】:

问题有“sql”标签????

@Aysnc
@Query(
        value =
                "exec(:asdf)",
        nativeQuery = true)
List<String> somemethodforthat(String asdf);
List<String> serw = abc.somemethodforthat("SELECT DISTINCT "+col+" FROM temp_res");

【讨论】:

    【解决方案2】:

    只需从 (a.fk_id) 和 a.* 之间的查询中删除逗号 尝试: SELECT DISTINCT ON (a.fk_id) a.* FROM Appointment a WHERE a.fk_id IN (:ids) 并尝试。我想,它会起作用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-26
      • 2021-12-14
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      相关资源
      最近更新 更多