sbling 2011-05-20 15:58
浏览 732
已采纳

hibernate:如何查询数据库bigint类型字段的最大值

下表,如何查询time的最大值? hql如何写?
create table _MaterialLoad(
id int IDENTITY(1,1) primary key not null,
mateCode char(12) not null,

contId char(30) not null,

time bigint not null

)

  • 写回答

4条回答 默认 最新

  • fmjsjx 2011-05-20 16:54
    关注

    这句HQL返回的直接就是一个long,应该这样:
    [code="java"]
    public Object doInHibernate(Session session) {
    Query query = session.createQuery(sql);
    Long maxTime = (Long) query.uniqueResult();
    System.out.println("dao matecode:"+maxTime);
    return maxTime;
    }
    [/code]
    如果你想返回time最大的那条完整记录,那HQL就不是这么写了,可以有几种写法:
    1.子查询:(记得hql好像支持子查询的,不行的话考虑第二种)
    [code="java"]hql="select o from MaterialLoad o where o.time=(select max(o.time) from MaterialLoad o)";[/code]
    2.用排序:(接收仍用query.uniqueResult();)
    [code="java"]hql="select o from MaterialLoad o order by o.time desc[/code]
    3.子查询+表连接:(同1)
    [code="java"]hql="select o from MaterialLoad o inner join (select max(o.time) as mixTime from MaterialLoad) m on o.time=m.mixTime [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波