执行getHibernateTemplate.save(user)后,控制台已经显示出sql插入语句,但数据库里并没有数据?
执行了getHibernateTemplate.save(user)后,控制台有hql语句输出,显示已经将数据存到数据库了,也没有抛出异常,但是去oracle数据库查的时候,压根就没有数据。。。。请问是怎么回事?
就下面这段代码:
public void save(User user) {
getHibernateTemplate().save(user);
}
------解决方案--------------------你是在UnitTest里,如果是的话,多半你们设置了自动回滚为每一个测试方法。
另外,你你检查一下,插入数据后,在你的事务提交之前,是不是发生了什么异常,如果有异常的话,事务不会提交,会回滚掉之前的操作。
------解决方案--------------------hibernate没有使用spring事务代理的时候,默认不是自动提交的,
你这里需要手动的commit一下把
Transaction tran=session.openTran.....
getHibernateTemplate().save(user);
tran.commit();
------解决方案--------------------
+1
------解决方案--------------------参考4楼。
------解决方案--------------------如果数据库开启了事务,
要么开启Hibetnate 自动提交功能,
要么手动提交.
<session-factory >
<property name="hibernate.connection.autocommit">true</property>
....
------解决方案--------------------四楼说的对:
hibernate没有使用spring事务代理的时候,默认不是自动提交的,
你这里需要手动的commit一下把
Transaction tran=session.openTran.....
getHibernateTemplate().save(user);
tran.commit();
------解决方案--------------------hibernate没有使用spring事务代理的时候,默认不是自动提交的,
你这里需要手动的commit一下把
Transaction tran=session.openTran.....
getHibernateTemplate().save(user);
tran.commit();
这个说了对的 你要姑SPRING配置文件要设置 自动提交的 估计你没有设置