hibernate3.0连mysql时无法提交的解决办法

hibernate3.0连mysql时无法提交的解决办法
貌似大家用hibernate连接的大都是Oracle数据库。
今天偶用hibernate连MySql时发现一个问题:
数据无法提交到对应的表中,且不报错,使我有种每次重启tomcat就重建表的错觉。
从而把过错归咎于
< property  name ="hbm2ddl.auto" > create </ property >
经过测试发现,我的方向错了。

原本,我的dao是这样写的:(以add为例)
/**
     * 向数据库中添加数据
     * 
     * 
@param  t
     
*/
    
public   void  add(T t) {
        logger.info(
" 向数据库添加 "   +  t);

        Session session 
=  HibernateUtil.getSession();

        session.save(t);
        session.flush();

        HibernateUtil.closeSession(session);
    }

后来和老师朋友们交流才知道,原来MySql是不能自动提交的,所以我的数据只是插入到缓存里,没到数据库里。
现将此方法改为如下形式便好了:
     /**
     * 向数据库中添加数据
     * 
     * 
@param  t
     
*/
    
public   void  add(T t) {
        logger.info(
" 向数据库添加 "   +  t);

        Session session 
=  HibernateUtil.getSession();
        Transaction ts
= session.beginTransaction();
        session.save(t);
        session.flush();
        ts.commit();
        HibernateUtil.closeSession(session);
    }



你可能感兴趣的:(hibernate3.0连mysql时无法提交的解决办法)