我的项目是用struts+Hibernate做的,我以前做的项目插入方法需要提交事务才可以插入数据库,但现在我的这个项目的插入方法没有用事务,直接try
{
dao.save(c);
return true;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
也可以插入成功,其他地方也没有配置事务,到底需不需要呢,如果不加事务会不会插入时而成功时而失败呢。本地目前没有发现插入不成功的现象,但是在网上操作的时候,添加的时候提示插入成功,页面也看到了,但是一会又没有了这条数据,没有人删除,我怀疑是不是没有插入数据库,页面看到的知识session里面的,但是 若是没有插入数据库呢,id却占用了,接着添加进去数据后就是消失那条数据后面的id奇怪想不明白,大家给点意见?怎么回事呢

解决方案 »

  1.   

    spring配置文件的hibernate 配置的地方<props>
                    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLDialect
                    </prop>
                    <!-- 表示允许自动提交 -->
                    <prop key="hibernate.connection.autocommit">true</prop>
                    <!-- 显示sql语句 -->
                    <prop key="hibernate.show_sql">true</prop>
                </props>
      

  2.   

    主要你没有配置Spring 事务,也没有配置Hibernate自动提交,
    所以你插入只是表面插入,但并没有真正提交到数据库,等Hibernate一同步当然就不见啦。