讨论一下Spring的HibernateTemplate为什么不提供uniqueResult方法

Yanbin_Q 2007-07-06 09:23:37
直接用Hibernate的session.createQuery().setMaxResult(1).uniqueResult()方法返回单一记录
而为什么HibernateTemplate不提供返回单一记录的uniqueResult()方法,这样造成如果我一条语句只要返回第一条记录的时候总是要从数据库传输出所有满足条件的记录,然后 list.get(0)取第一条
如果有uniqueResult方法,只要求DB传一条记录就行,不会造成网络的浪费
不知道Spring是怎么考虑的,为了从查询到的list中get(0),Spring还乐意的提供DataAccessUtils.uniqueResult(getHibernateTemplate().find(...));,其实这都没有改善任何

也许Spring考虑到你有uniqueResult()的需求的时候,你之前的查询语句一定就是只返回了一条记录。
...全文
1358 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a5692408b 2010-08-05
  • 打赏
  • 举报
回复
用SPRING感觉更麻烦了


是真的麻烦了 好处自己到没有体会啊
a5692408b 2010-08-05
  • 打赏
  • 举报
回复
反正我用HIbernate都挺慢的

直接用JDBC多快 不知道啥情况
yanfeifei 2008-11-03
  • 打赏
  • 举报
回复
楼主遇到问题更我一样我也是用同样的方法
做的登录验证
public Object getUniqueresult(String hql)
{
Object object=null;
try{
object=this.getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(hql).uniqueResult();

}catch (RuntimeException re) {
throw re;
}finally{
System.out.println("finally");
this.getHibernateTemplate().getSessionFactory().close();
}
return object;
}
这样写就可以强转成任何类型包括验证登录问题
但是我的程序还是慢
随便几个操作数据库就有5,6条链接程序运行好慢
不知道有什么方法解决!
qinnewer 2008-07-07
  • 打赏
  • 举报
回复
[align=center][align=center]
[/align][/align]
uhlanme 2007-08-24
  • 打赏
  • 举报
回复
楼上
HibernateCallback中的方法,
由于HibernateCallback是一个接口,所以一般用作局部内部类使用
如果需要使用,可以这样:

this.getHibernateTemplate.execute(new HibernateCallback(){
public Object diInHibernate(Session session){}
});
Yanbin_Q 2007-07-11
  • 打赏
  • 举报
回复
没见到哪里有doHibernate方法啊,是哪个类
zqpsswh 2007-07-09
  • 打赏
  • 举报
回复
用Spring里的doHibernate方法就行了
Yanbin_Q 2007-07-06
  • 打赏
  • 举报
回复
我为了获取查询到的批记录中的一条,还必须让数据库把所有记录传送到应用服务器,再取第一条才是最大的开销
即使语句只是查取一条记录,也要用回调函数来处理一下,也是开销
jspxnet 2007-07-06
  • 打赏
  • 举报
回复
回头看看spring 并不好,就像一个庞大的怪物,什么功能都有,什么都不是自己.
zxh2208180 2007-07-06
  • 打赏
  • 举报
回复
Hibernate是对jdbc的封装,支持更多的检索方式是必须要做到的;而spring是个轻量级的框架,为了减少不必要的开销,不支持一些方法是完全可以理解的...

67,513

社区成员

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

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