【发布时间】:2011-05-16 07:09:12
【问题描述】:
我正在尝试将一个新对象插入到我的数据库中。我按照分步教程进行操作,但似乎对我不起作用。在教程中有以下行:
交易 tx = dao.GetSession().beginTransaction();
GetSession 没有弹出,我收到错误“GetSession() 在 DaoHibernateSupport 中不可见”。 我用以下内容替换了该行:
Transaction tx = dao.getSessionFactory().getCurrentSession().beginTransaction();
但是我在 currentSession 上得到了一个空异常。
我在线阅读并添加了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();
-
所以这里没有引发异常,但是当我访问数据库时,表中没有行。
你能帮帮我吗? 谢谢!
【问题讨论】:
-
如果您注释错误,可能问题出在横幅类中。
-
@ user714965 好吧,我在 MyEclipse 中使用了 Hibernate 逆向工程,所以该类是自动创建的。他们不应该是正确的吗?我查看了横幅类,一切似乎都很好。
-
@Bozho 我猜 save() 将横幅保存(或应该保存)到数据库中。也是 DAO 类的一部分
-
道不是你的代码吗?
-
不,当我在数据库表上使用休眠反向工程时,会创建所有 3 个类。我得到:AbstractBanner、DAOBanner 和 Banner 类。