查询表最大id的记录

zhuwanyong52 2011-08-20 12:34:55
我想要查询auction_bid表里最大id的一条记录!下面是代码
public AuctionBid getMaxBid( ) {
Session session=null;
AuctionBid bid=null;
String hql="select top 1 {b.*} from auction_bid b order by ab_id desc";
try {
session=this.getSession();
SQLQuery q=session.createSQLQuery(hql).addEntity("b",AuctionBid.class);
List<AuctionBid>l=q.list();
bid=l.get(0);
} catch (HibernateException e) {
e.printStackTrace();
}
return bid;
}
下面是报错
Caused by: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
映设文件也写了!
at org.hibernate.loader.Loader.list(Loader.java:2124)Hibernate: select top 1 b.AB_ID as AB1_2_0_, b.AU_USER_ID as AU2_2_0_, b.AP_PROD_ID as AP3_2_0_, b.AB_INDEX as AB4_2_0_, b.AB_CREATE_TIME as AB5_2_0_, b.AB_PRICE as AB6_2_0_ from auction_bid b order by ab_id desc
请问是什么原因?
...全文
301 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwanyong52 2011-10-13
  • 打赏
  • 举报
回复
这是用hql语句写的!不是sql!
leiting321 2011-08-21
  • 打赏
  • 举报
回复
学习路过
lsls22 2011-08-21
  • 打赏
  • 举报
回复
看错误信息:

select top 1 b.AB_ID as AB1_2_0_, b.AU_USER_ID as AU2_2_0_, b.AP_PROD_ID as AP3_2_0_, b.AB_INDEX as AB4_2_0_, b.AB_CREATE_TIME as AB5_2_0_, b.AB_PRICE as AB6_2_0_ from auction_bid b order by ab_id desc

这是最终在DB中要执行的SQL语句。DB是ORACLE的,但PL\SQL中是没有top关键字的!只有T-SQL中才有top关键字,所以错误就出来了。
要达到想要的效果,最终生成的SQL应该是这样:

select * from auction_bid b where b.ab_id = (select max(ab_id) from auction_bid);

剑神一笑 2011-08-20
  • 打赏
  • 举报
回复
直接用max(id)不就完了
leehom_young 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dotnetstudio 的回复:]
建议楼主将select top 1 {b.*} from auction_bid b order by ab_id desc在数据库执行下,看是否有错,怀疑是你的SQL写得有问题,因为没见过用大括号括起来的
[/Quote]
我同意他的想法。像咬对数据库操作,可以先在数据库本身检查语句是否有错,这是不错的解决bug的办法。
  • 打赏
  • 举报
回复
请不要这么做!
caixuanbin 2011-08-20
  • 打赏
  • 举报
回复
帮楼主顶一下
KeepSayingNo 2011-08-20
  • 打赏
  • 举报
回复
建议楼主将select top 1 {b.*} from auction_bid b order by ab_id desc在数据库执行下,看是否有错,怀疑是你的SQL写得有问题,因为没见过用大括号括起来的
mmqswan 2011-08-20
  • 打赏
  • 举报
回复
同意楼上的回答,跟个
GIS__ 2011-08-20
  • 打赏
  • 举报
回复
你ID是字符还是数字?
数字的话直接MAX(ID);
安心逍遥 2011-08-20
  • 打赏
  • 举报
回复
直接用max(id)不就完了,
就是啊!

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧