Hibernate DAO不会将行插入数据库MyEclipse

时间:2011-05-16 07:09:12

标签: java hibernate dao

我正在尝试将新对象插入到我的数据库中。我按照一步一步的教程,但似乎它对我不起作用。在教程中有以下行:

交易tx = dao.GetSession()。beginTransaction();

GetSession没有弹出,我收到错误“从DaoHibernateSupport看不到GetSession()”。 我用以下内容替换了该行:

Transaction tx = dao.getSessionFactory().getCurrentSession().beginTransaction(); 

但是我在currentSession上得到了一个null异常。

我在线阅读并添加了current_session_context property,设置为“thread”。

现在一切似乎都有效,我没有得到任何异常,但仍然没有行插入我的MySql数据库。该表是InnoDB。

这是我的最终代码:

         Banner banner = new Banner();

     banner.setUrl(url);

     banner.setCategorie(categorie);

     banner.setCuvinteCheie(cuvinte_cheie);

     banner.setMaxCpc(cpc);

     banner.setPath(cale);

     banner.setPaththumb(caleThumb);

     banner.setAdvertiserId(Integer.parseInt(session.getAttribute("UserID").toString()));

     BannerDAO dao = new BannerDAO();

     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

     dao.setSessionFactory(sessionFactory);

     Transaction tx = dao.getSessionFactory().getCurrentSession().beginTransaction();

     dao.save(banner);

     tx.commit();

     dao.getSessionFactory().getCurrentSession().close();
  • 所以这里没有引发异常,但是当我访问数据库时,表中没有行。

    你能帮帮我吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试

Transaction tx = dao.getSessionFactory().openSession().beginTransaction();

而不是

Transaction tx = dao.getSessionFactory().getCurrentSession().beginTransaction();

答案 1 :(得分:1)

我明白了。当我在MyEclipse中使用逆向工程时,我创建了一个SpringDAO而不是BasicDAO。现在方法getSession()工作正常。