2 sinat 21697575 sinat_21697575 于 2017.08.30 11:21 提问

mysql getHibernateTemplate().save 执行很慢 30C

处理描述
1.主处理
@Transactional(rollbackFor = Exception.class)
public String saveRecord(Record mRecord) {
try {
User user = userDao.load(mRecord.getUser().getId());
mRecord.setUser(user);
mRecord.setType(mRecord.getType());
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
mRecord.setAnswerDatetime(timestamp);
mRecord.setUpdateUserId(mRecord.getUser().getId());
mRecord.setUpdateDatetime(timestamp);
mRecord.setCreateUserId(mRecord.getUser().getId());
mRecord.setCreateDatetime(timestamp);
recordDao.save(mRecord);
return "SUCCESS";
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw e;
}
}
2.save处理
public ID save(T t) throws DataAccessException {
if (t != null) {
if (t instanceof UpdateInfo) {
Manageable userInfo = Authenticator.loadActiveUser().getUserInfo();
if (userInfo != null) {
UpdateInfo u = (UpdateInfo)t;
Timestamp systime = new Timestamp(System.currentTimeMillis());
u.setUpdateUserId(userInfo.getId());
u.setUpdateDatetime(systime);
if (u.getCreateDatetime() == null) {
u.setCreateUserId(userInfo.getId());
u.setCreateDatetime(systime);
}
} else {
UpdateInfo u = (UpdateInfo)t;
Timestamp systime = new Timestamp(System.currentTimeMillis());
u.setUpdateDatetime(systime);
}
}
return (ID)getHibernateTemplate().save(t);
}
return null;
}

问题点描述
return (ID)getHibernateTemplate().save(t);
这个处理花了十几分钟才结束。

log日志
1.接受到请求2017/08/30 09:02:23.763 INFO ControllerInterceptor creatRecord START 
2.数据库record的最终的更新时间是 2017/08/30 09:02:24
3.record表的id是从seq表中取得的
 Wed Aug 30 09:17:01 JST 2017
 Hibernate: select seq_value fromsequences where seq_key = 'record_id' for update
 Hibernate: update sequences set seq_value = ? where seq_value = ? and seq_key = 'record_id'
 Hibernate: insert into `records` (answer_datetime, answer_result, confirm_date, confirm_hour, confirm_minute, create_datetime, create_user_id, type, update_datetime, update_user_id, user_id, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

根据上述log推断return (ID)getHibernateTemplate().save(t);处理花了十几分钟。
补充:
个人开发环境,测试环境,staging环境都没有问题,只有在正式服务器上会有这个问题。
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
getHibernateTemplate().save ()成功但不能写入数据库 解决方法
数据被缓存了未flush。 save方法后添加getHibernateTemplate().flush(); 在hibernate.cfg.xml里面加入   true 如果用spring管理Hibernate,则applicationContext.xml中 true
解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
分析:数据是保存在缓存中而未提交到数据库中 解决办法: 在hibernate.cfg.xml里面加入   true
getHibernateTemplate().save(Object obj)不能保存数据的原因
原网页点击打开链接 最简洁概述: 你在hibernate.xml配置文件里加上 true 搞定   做项目过程中,在一个save()方法中不能把数据提交到数据库,而在后台打印的sql语句来看已经执行了insert 操作,数据库执行查询语句一直在等待。 问题很明显,在写好一个save()方法后,在写一个get()的方法,然后先操作save(),再get()得到的 数据量却增加了一条
getHibernateTemplate().save ()不能保存到数据库的问题
程序完成保存任务,没有报任何错误,但是没有保存到数据库解决办法: save方法后,手动执行一下getHibernateTemplate().flush(); 在hibernate.cfg.xml里面加入  true 如果还是不能解决问题,那你要注意下antlr.jar 这个jar包是hibernate把hql转换成sql的必备包!
Hibernate中getHibernateTemplate()下的update、delete、save操作
Hibernate中getHibernateTemplate()下的update、delete、save的操作
getHibernateTemplate().save() 未保存到数据库问题之解决
今天想用spring中的 getHibernateTemplate().save()写数据库,但执行程序后没有任何错误信息,而数据也没有写入到数据库中,如果你也遇到同样的问题,下面的解决方法也许可以帮到你。   在spring的配置文件中完成以下两步就可以了:添加一个TransactionProxyFactoryBean的定义,target指向你程序中将要调用的DAO         
解决this.getHibernateTemplate().save();报空指针异常问题
接上篇博文 刚刚在整合SSH时碰到了这样一个问题: 代码如下 package com.crm.biz;import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Service; import org.springframe
getHibernateTemplate().save不写入数据库的解决
原文地址:http://huangyunbin.iteye.com/blog/1326676   今天发现一个问题 getHibernateTemplate().save不写入数据库,但是发现sql语句已经在控制台打印出来了。 getHibernateTemplate().flush();也没有作用 最后估计是在缓存中没有提交。 解决办法:true 更好的解决办法
HibernateTemplate的save方法不能保存
没有插入数据到数据库,但是又能通过get方法得到数据。说明你的操作只是在hibernate的缓存中进行,并没有实际操作数据库。 save方法后,手动执行一下getHibernateTemplate().flush()方法吧。 没有看到SQL语句是因为我没有配置show_sql属性。配好后控制台打印了insert语句,但是数据库里任然没有写入数据。执行getHibernateTemplate
gethibernatetemplate .save() 无法保存对象到数据库
最近在做一个java web项目基于Spring+SpringMVC9+Hibernate框架。运行之后通过页面往后台传值储存到数据库的 时候报这个错误com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException Table 'zxpm.hibernate_sequence'  doesn't exist 解决办法: 经