Hibernate 的session.delete无法删除数据库数据的问题。

Session只有在清理缓存的时候的才执行delete语句。此外,只有当调用Session的close()方法时,才会从Session的缓存中删除该对象。

例如以下代码先加载一个持久化对象,然后通过delete()方法将它删除:

        Session session1 = sessionFactory.openSession();

        Transaction tx1 = session1.beginTransaction();

        // 先加载一个持久化对象

        Customer customer = (Customer)session.get(Customer.class, new Long(1));

        session.delete(customer); // 执行一个delete语句

        txt1.commit(); // 清理缓存,执行delete语句

        session.close();// 从缓存中删除Customer对象

小结:删除数据前,开启事务,可以解决这个问题。

posted on 2018-09-21 16:02  Amaisoul  阅读(1369)  评论(0)    收藏  举报