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对象

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM