【问题标题】:PostgreSQL and hibernate query.uniqueResult errorPostgreSQL 和休眠 query.uniqueResult 错误
【发布时间】:2015-11-13 21:17:45
【问题描述】:

我必须将使用 oracle 数据库的系统更改为 PostgreSQL。 下面的查询,当在 PostgreSQL 查询生成器中运行时,返回 '8',

SELECT COUNT(*)
  from database.client c  
  left join database.salutation t  on c.SALUTATIONID = t.SALUTATIONID  
  left join database.add_details ad  on ad.ADDDETAILID = c.ADTYPEID  
  left join database.add_type at  on at.ADDTYPEID = ad.ADDTYPEID  
  left join database.geo_cat g  on g.GEOID = ad.POSCODEID
  left join database.cltype clt  on clt.CLTYPE = '<CLIENTTYPE>'  
  inner join database.mapclient mc
     on mc.CLIENTID = c.CLIENTID 
    and mc.CLTYPEID = clt.CLTYPEID 
    and mc.EFFDATE <= '06-JUN-2014'

在java类中,查询执行如下

Query queryCount = getSession().createSQLQuery(countSql);
int count = ((Number) queryCount.uniqueResult()).intValue();

这适用于 Oracle,但使用 Postgre,它会给出以下错误,

查询未返回唯一结果:8

为什么会发生这种情况,我该怎么办?

【问题讨论】:

  • 您可以运行 list() 查询并检查结果以收集更多信息,这里出了什么问题

标签: java oracle hibernate postgresql


【解决方案1】:

尝试将 select 子句更改为:

SELECT COUNT(c.id) from database.client c  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-30
    • 2018-12-07
    • 2018-11-08
    • 2012-05-01
    • 2011-03-30
    • 1970-01-01
    • 2017-07-17
    • 2012-05-14
    相关资源
    最近更新 更多