我一般会这样写,首先在DAO类里合成一个SessionFactory对象,然后
Session session = sessionFactory.getSession();
Transaction trans = session.beginTransaction();
session.save(object);
trans.commit();
session.close();
你记录没插进去,可能是因为你两次beginTransaction()返回的不是同一个对象!

解决方案 »

  1.   

    我写了一个DAO的基类
    private SessionFactory factory;
    public SessionFactory getFactory() {
    return factory;
    }
    public void setFactory(SessionFactory factory) {
    this.factory = factory;
    }
    public Session getSession() {
    Session session = getFactory().openSession();
    return session;
    }
    照你的写法:
    Transaction trans =getSession().beginTransaction();
    getSession().saveOrUpdate(obj);
    getSession().flush();  
    trans.commit();
    还是插不进去,郁闷了
      

  2.   

    public Session getSession() {
    Session session = getFactory().openSession();
    return session;
    }
    照你的写法:
    Transaction trans =getSession().beginTransaction();
    getSession().saveOrUpdate(obj);
    getSession().flush();  
    trans.commit();
    ===================================
    getSession()每次返回一个新 SESSSION 对象
      

  3.   

    Session session = getSession();
    Transaction trans =session.beginTransaction();
    session.saveOrUpdate(obj);
    session.flush();  
    trans.commit();
      

  4.   

    非常感谢楼上各位,问题如jingtao8177(快餐委员会,医学牙防组,足协) 所说,返回的是不同的session对象,谢谢,给分了