手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

用getHibernateTemplate()批量插入数据时出错

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

我的系统框架是Struts spring Hibernate,今天想往数据库批量的插入数据,愿以为使用

getHibernateTemplate().saveOrUpdateAll(objs);可以很快搞定,但是测试中老是插不尽数据。代码是这样的。

public void batchInsert(Collection objs){
log.debug("objs size = " objs.size());
getHibernateTemplate().saveOrUpdateAll(objs);
//getHibernateTemplate().flush();}

结果没办法,使用hibernate的老办法才解决问题。代码如下

public void batchInsert(Collection objs){
log.debug("objs size = " objs.size());
//getHibernateTemplate().saveOrUpdateAll(objs);
//getHibernateTemplate().flush();
//getHibernateTemplate().getSessionFactory();
log.debug("open session");

Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = null;
try
{
log.debug("begin transaction");
tx = session.beginTransaction();
if (objs.size() > 0)
{
for(Iterator it=objs.iterator();it.hasNext();){

IdeclResult rs = (IdeclResult)it.next();
log.debug("transaction save company name=" rs.getCompanyName());
session.save(rs);
}
}

tx.commit();
}
catch (HibernateException he)
{
tx.rollback();
throw he;
}
finally
{
session.close();
}

}

上一篇: 在tomcat5.0.28下配置DWR出错
下一篇: 用javascript 自动调节iframe高度出现问题

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!