`

Hibernate删除一个session.load来的Model类?

阅读更多

如下所示:

         public static void delete() {

       Session session = HiberUtil.getSession();

      

       ProjCost toDelete = (ProjCost)session.load(ProjCost.class, 6723L); // load方式就是想不希望Hibernatetouch数据库,毕竟delete时只需要一个id就够了。

      

       session.close();

      

      

       session = HiberUtil.getSession();

       session.beginTransaction();

      

       session.delete(toDelete);

      

       session.flush();

       session.getTransaction().commit();

    }

 

我想用这样的方法来删除一行记录,目的是想实验下Hibernate能不能不去数据库中加载数据情况下删除一行记录。

 

实验结果是,现在3.2版本的不行, Hibernate会自动加载数据。

 

执行过程中,org.hibernate.event.def. DefaultDeleteEventListener类中onDelete(DeleteEvent event, Set transientEntities)方法中的一句话“Object entity = persistenceContext.unproxyAndReassociate( event.getObject() );”剥去Proxy外壳而取hit数据库地数据。

 

哪为什么要这样呢?也就是说不这样会有什么不良后果尼?
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics