hibernate hql如何查询满足条件的第一条记录

zzt369880281 2012-09-12 03:28:14
以前用sql时可以写上一个top 1 就能返回一个查询结果,可是好像hql里没有这个呀
现在的需求是必须写在hql语句里,不能使用setFirstResult等
...全文
10969 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
武陵晓生 2014-04-18
  • 打赏
  • 举报
回复
引用 13 楼 star830301 的回复:
这样算犯规么- - createSqlQuery("select top 1 ......").list()
这种写法诸如oracle就不行
zzt369880281 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

这样算犯规么- -
createSqlQuery("select top 1 ......").list()
[/Quote]算吧,说的是用hql语句
a82759082 2012-09-15
  • 打赏
  • 举报
回复
你返回的是个集合吧?取第一条不就行了。list.get(0)
a1039167007 2012-09-15
  • 打赏
  • 举报
回复
我最经刚试过,因为他返回的是一个List集合,所以你可以只取list集合中的第一条,也就是list.get(0)就行,其他好像没办法实现。
  • 打赏
  • 举报
回复
那试下 调用 存储过程 吧、返回在封装下就可以了

存储过程返回就数据库查询的一条语句就行、
返回在封装成实体或者dto

这样做会对项目迁移没什么好处、
快乐De程序员 2012-09-15
  • 打赏
  • 举报
回复
这样算犯规么- -
createSqlQuery("select top 1 ......").list()
_jerrytiger 2012-09-14
  • 打赏
  • 举报
回复
hibernate的 setFirstResult 和 setMaxResult 能够兼容一些数据库。 如果你用hql
你直接用你使用的数据库的分页关键字 mysql用limit oracle用rowcount sqlserver 用 top
yktd26 2012-09-14
  • 打赏
  • 举报
回复
limit 1
zzt369880281 2012-09-14
  • 打赏
  • 举报
回复
为什么被删了好多回复?csdn改的什么版啊这是,越改越差
zzt369880281 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

经过本人上网查询,这是不可能实现的。

要么查询list,只取第一条;
要么写sql语句,用函数实现;
[/Quote]看来hql不强大啊,不过所有的技术总有他不足的一面
夏日彩虹 2012-09-12
  • 打赏
  • 举报
回复
只能写个完整的SQL语句,HQL没有这个解决方案。
liangtu 2012-09-12
  • 打赏
  • 举报
回复
经过本人上网查询,这是不可能实现的。

要么查询list,只取第一条;
要么写sql语句,用函数实现;
liangtu 2012-09-12
  • 打赏
  • 举报
回复
我查了,网上也没有解决方案,用hql是解决不了的;

要么,你针对具体的数据库,写sql语句;
要么,得到查询结果的list后,再做处理。
zzt369880281 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你返回的是个集合吧?取第一条不就行了。list.get(0)
[/Quote]
现在有个要求是必须在sql语句里体现
zh919919 2012-09-12
  • 打赏
  • 举报
回复
你返回的是个集合吧?取第一条不就行了。list.get(0)

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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