论坛首页 Java企业应用论坛

关于启动事务的问题

浏览 4601 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-10-13  
在参考中有一段查询代码,为什么要用事务呢?代码如下:
public List listAllBlogNamesAndItemCounts(int max) throws HibernateException {
Session session = _sessions.openSession();
Transaction tx = null;
List result = null;
try {
tx = session.beginTransaction();
Query q = session.createQuery(
"select blog.id, blog.name, count(blogItem) " +
"from Blog as blog " +
"left outer join blog.items as blogItem " +
"group by blog.name, blog.id " +
"order by max(blogItem.datetime)"
);
q.setMaxResults(max);
result = q.list();
tx.commit();
}
catch (HibernateException he) {
if (tx!=null) tx.rollback();
throw he;
}
finally {
session.close();
}
return result;
}
   发表时间:2003-10-13  
看论坛提问的智慧第二条
0 请登录后投票
   发表时间:2003-10-13  
我还是不明白,这只是一个查询函数啊,需要事物吗?
0 请登录后投票
   发表时间:2003-10-13  
答案是不需要!

其实我希望你去精华区看看我的Transaction的帖子,就可以搞清楚Transaction的原理了,这比解决这一个问题收获大得多。
0 请登录后投票
   发表时间:2003-10-13  
以前和robbin讨论过,在这种情况下事务不是必需的,但hibernate的作者觉得加上事务可能更好,故hibernate的例子中都是有事务的。我倾向于不加,除非你对数据的准确性要求很高。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics