首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

施行getHibernateTemplate.save(user)后,控制台已经显示出sql插入语句,但数据库里并没有数据

2013-07-01 
执行getHibernateTemplate.save(user)后,控制台已经显示出sql插入语句,但数据库里并没有数据?执行了getHib

执行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();
[解决办法]

引用:
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配置文件要设置 自动提交的  估计你没有设置 

热点排行