hibernate事务mysql_hibernate事务提交的问题,为什么每次提交事务都是上一次的操作...
学习ssh遇到一个问题,向数据库插入一笔记录,去数据库查看,没有反应,然而当本人再次向数据库插入一笔记录时,数据库显示更新了上一次插入的记录。假如这时候再次向数据库插入一笔记录,数据库显示的是第二次更新的数据,也就是说,本人每插入一笔记录,数据库一直显示上一次的操作有效。假如关闭程序,最后一次的插入记录操作会被丢失。
本人的数据库是mysql,是通过Hibernate Reserve Engineering…自动生成的代码,文件UserDAO.java的代码为:
public class UserDAO extends HibernateDaoSupport implements IUserDAO {
private static final Log log = LogFactory.getLog(UserDAO.class);
// property constants
public static final String USERNAME = “username”;
public static final String PASSWORD = “password”;
protected void initDao() {
// do nothing
}
/* (non-Javadoc)
* @see com.ssh.dao.impl.IUserDAO#save(com.ssh.user.User)
*/
@Override
public void save(User transientInstance) {
log.debug(“saving User instance”);
Session session = this.getSession();
Transaction tx = session.beginTransaction();
try {
getHibernateTemplate().save(transientInstance);
tx.commit();
log.debug(“save successful”);
} catch (RuntimeException re) {
log.error(“save failed”, re);
throw re;
}
}
。
}
其中Session session = this.getSession();Transaction tx = session.beginTransaction();这些代码是本人本人添加了,原因是自动生成的代码不会产生事务处理。
hibernate的配置文件hbernate.cfg.xml如下:
hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
org.hibernate.dialect.MySQLDialect
jdbc//localhost:3306/logindemo
root
cyj
com.mysql.jdbc.Driver
true –>
true
MySqlConn
spring配置文件applicationContext.xml内容如下:
xmlns=”http://www.springframework.org/schema/beans”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:p=”http://www.springframework.org/schema/p”
xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd”>
class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”>
value=”classpath:hibernate.cfg.xml”>
本人打开调试,每当执行完tx.commit();这句代码,立刻去数据库查看,显示数据库更新了上一次的操作。假如是程序第一次执行插入操作,执行tx.commit();数据库没有任何反应。
解决方案
60
可以尝试在spring里加上事务处理。
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hibernate事务提交的问题,为什么每次提交事务都是上一次的操作!
还没有评论,来说两句吧...