Hibernate3.0批量更新

原创 2012年03月23日 01:13:29

service层的代码:

HhCalendar obj = new HhCalendar();
HhCalendarId id = new HhCalendarId();
id.setFydesc(fYDesc);
id.setFmdesc(fMDesc);
id.setFwdesc(fWDesc);
obj.setId(id);
obj.setBeginDate(beginDate);
obj.setEndDate(endDate);
obj.setUpdateDt(updateDt);
imptMngDao.updateFiscal(obj);

dao层的代码:

public void updateFiscal(HhCalendar entity){
    this.getHibernateTemplate().update(entity);
}
加个for循环来循环service层中的代码,如果有重复的数据就会报“内存中已存在相同标识的实体对象”的错误,解决方法如下:
修改dao层中的代码

public void updateFiscal(HhCalendar entity){
    String hql = "update HhCalendar set beginDate=:param0,endDate=:param1,updateDt=:param2 " + 
                                         "where id.fydesc=:param3 and id.fmdesc=:param4 and id.fwdesc=:param5";
    Session s = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
    s.createQuery(hql).setString("param0", entity.getBeginDate()).setString("param1", entity.getEndDate())
                        .setDate("param2", entity.getUpdateDt())
                        .setString("param3", entity.getId().getFydesc())
                        .setString("param4", entity.getId().getFmdesc())
                        .setString("param5", entity.getId().getFwdesc()).executeUpdate();
    this.releaseSession(s);
}
显示的用hql语句来批量更新,这样是没有问题的。

还有一种方法是使用Hibernate封装的方法,如下:

this.getHibernateTemplate().update(entity);
this.getHibernateTemplate().getSessionFactory().getCurrentSession().flush();
this.getHibernateTemplate().getSessionFactory().getCurrentSession().evict(entity);
this.getHibernateTemplate().getSessionFactory().getCurrentSession().delete(entity);
经测试,可行!

Hibernate3.0批量更新,删除

Hibernate3.0执行批量更新Session session = sessionFactory.openSession(); Transaction tx = session.beginTran...
  • yyong413
  • yyong413
  • 2007年03月01日 11:42
  • 622

Hibernate2.0与Hibernate3.0的区别

 本文描述了Hibernate3.0版本的新变化,Hibernate3.0版本的变化包括三个方面:(1)API的变化,它将影响到Java程序代码.(2)元数据,它将影响到对象-关系映射文件.(3)HQ...
  • buffet518
  • buffet518
  • 2007年09月12日 10:08
  • 857

为大家提供一个完整的Hibernate Annotation项目_源码下载

项目结构: 在这里有必要跟大家说说Hibernate中的各个jar包的含义:。。。。。上面的log4j-1.2.11.jar包没有都可以哦!!! 1 /** 2 * ...
  • F7ANTY
  • F7ANTY
  • 2014年03月11日 17:23
  • 783

hibernate实例代码

添加hibernate插件,定义VO对象 hibernate.cfg.xml  jdbc:mysql://localhost:3306/demo  root  root  com.mys...
  • fh09102103
  • fh09102103
  • 2015年04月26日 16:16
  • 355

hibernate3.0 配置文件模板

  • woshiwu
  • woshiwu
  • 2011年05月05日 01:52
  • 2444

Hibernate3.0和Hibernate4.0的区别

Hibernate4的改动较大只有spring3.1以上版本能够支持, Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展...
  • qq_31001889
  • qq_31001889
  • 2016年09月22日 11:47
  • 100

Hibernate 批量更新数据

进行批量更新时,如果一下子把所有对象加载到session的缓存中,然后再进缓存中一一更新它们,显然是不可取的,为了解决这一问题,可以使用滚动的结果集 org.hibernate.Scrollable...
  • RonaldoZH
  • RonaldoZH
  • 2015年11月18日 17:02
  • 1274

mysql设置批量更新

from: http://www.cnblogs.com/chenjianjx/archive/2012/08/14/2637914.html MySQL Jdbc驱动在默认情况下会无视exe...
  • hotdust
  • hotdust
  • 2016年06月04日 17:14
  • 726

转Hibernate3.0

Hibernate3.0预备知识:Core JavaJDBCSQL Hibernate理论基础1.     什么是hibernate?2.     hibernate的知识内容3.     什么是对象...
  • javacaihai
  • javacaihai
  • 2009年12月17日 23:36
  • 348

ibatis与mybatis批量更新

批量更新目的在于减少数据库io时间,缩短执行时间,提高效率。 ibatis批量配置: xml: id="batchUpdate" parameterClass="com.***.entit...
  • what_we_are
  • what_we_are
  • 2017年11月03日 17:01
  • 89
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate3.0批量更新
举报原因:
原因补充:

(最多只允许输入30个字)