操作:删除某新闻类型下的所有新闻方法一:
super.getHibernateTemplate().deleteAll(
super.getSession().createCriteria(News.class).add(
Expression.eq("newstype.id", id)).list());方法二:
super.getSession()
.createQuery("delete News n where n.newstype.id=:id")
.setInteger("id", id).executeUpdate();
两种方法 哪种方法效率要高点?为什么?

解决方案 »

  1.   

    第二个
    第一种是先list,然后删除
    第二个是直接删除
      

  2.   

    第一方法还得去创建对象
    第二种方法直接执行sql--
    偶觉得也是第二种
      

  3.   

    我推荐一种方法:在主表的映射文件中 配置一对多的关系然后在节点<set>添加属性 cascad="delete" 我感觉这样更简单
      

  4.   

      (1)父表:<set name="orders" order-by="order_id" inverse="true" lazy="false" cascade="all-delete-orphan"> 
    <key column="member_id"> </key> 
    <one-to-many class="hbp.ch04.ex03.model.Order"/> 
    </set> 
         (2)子表:<many-to-one name="member" column="member_id" class="hbp.ch04.ex03.model.Member" cascade="delete"> </many-to-one> 
     试试