相信搜索SSH框架的级联删除的,最初想法是怎么用代码实现级联吧,现在有个更简单的方法,只要你安装了Navicat(其他类似软件可能也行,不过我没试过)
首先说一下数据库表之间的关系,用过powerdesiger的应该知道这个是什么意思
不懂也没关系,一个是驾照认证信息表,一个是用户信息表,用户信息表的主键UserID是驾照认证信息表的外键。
我要实现的是删除用户的同时,删除驾照认证信息表中对应的用户的驾照信息
HQL语言
public void personDaoDelete(int id) {
String hql="delete Personinfo n where n.id=:id";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setInteger("id",id);
query.executeUpdate();
}
你没看错,代码中HQL语言就这样写
剩下的都在Navicat中操作,我这里是已经建好表了,只需要关心zl_user表和zl_license表,这两个表就是对应powerdesigner中的用户信息表和驾照认证信息表
点击zl_license右键->设计表->外键
点击删除是下面的RESTRICT,改成CASCADE(意思是对应主表对应主键被删除后,此从表中含有主表外键的数据行都会被删除)
就可以了,注意看一下“参考表”是不是对应的zl_user表