我正在尝试将新对象插入到我的数据库中。我按照一步一步的教程,但似乎它对我不起作用。在教程中有以下行:
交易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();
所以这里没有引发异常,但是当我访问数据库时,表中没有行。
你能帮帮我吗? 谢谢!答案 0 :(得分:1)
您可以尝试
Transaction tx = dao.getSessionFactory().openSession().beginTransaction();
而不是
Transaction tx = dao.getSessionFactory().getCurrentSession().beginTransaction();
答案 1 :(得分:1)
我明白了。当我在MyEclipse中使用逆向工程时,我创建了一个SpringDAO而不是BasicDAO。现在方法getSession()工作正常。