日志表:tbl_post
(主键:post_id)
评论表 tbl_talk
(日志表的外键:post_id)要求删除日志的时候 删除改日志所有的评论。在Hibnate中 怎么才能够在同事务中操作 这两次删除。 请求高手帮忙解决。。谢谢!

解决方案 »

  1.   

    双向一对多关联的映射,在one一方映射配置
    <set name="***" inverse="true" cascade="all">
         <key column="***" />
         <one-to-many class="***" />
    </set>切记不可忘记 cascade="all"  如此,你在删除日志的时候就可以删除该日志下所有评论
      

  2.   

    name="***" ***指one的一方实体类中 private Set posts = new HashSet(); Set的对象名称posts 
    column="***"   ***指多的一方外键的字段名
    class="***"    ***指指定关联到多的一方的类别cascade的默认值是none,表示在保存、修改、删除本对象时,不对与之关联的对象进行任何操作
    如果cascade的值是 save-update 则执行更新操作是级联,delete 则执行删除操作时级联
      

  3.   

    手工删除,加入hql,加入判断条件
      

  4.   

    不使用hibernate的映射表进行级联删除,不使用触发器,你真的只有如楼上所说的:
    手工删除,加入hql,加入判断条件
      

  5.   

    foreign key (post_id) references tbl_talk(post_id) on delete cascade
      

  6.   

    最好的方法就是写存储过程,促发器.
    偷懒的办法就是配置hibernate 映射文件
    最龌鹾的办法就是自己写sql/hql删除