联级删除:(通过业务逻辑实现)
String[] ids是传过来的数组,可以选择多个删除,同时删除他们的子表.
public void delete(String[] ids) {
final Long[] cids = new Long[ids.length];
for(int i=0;i<ids.length;i++){
cids[i] = Long.valueOf(ids[i]);
}
final String hql = " delete from 父 where id in (:id)";//删除父信息
final String hqlchild = " delete from 子 where parentid in (:parentid)";//删除子信息
getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
session.createQuery(hql).setParameterList("id",cids).executeUpdate();
session.createQuery(hqlchild).setParameterList("parentid",cids).executeUpdate();
return null;
}
});
}
String[] ids是传过来的数组,可以选择多个删除,同时删除他们的子表.
public void delete(String[] ids) {
final Long[] cids = new Long[ids.length];
for(int i=0;i<ids.length;i++){
cids[i] = Long.valueOf(ids[i]);
}
final String hql = " delete from 父 where id in (:id)";//删除父信息
final String hqlchild = " delete from 子 where parentid in (:parentid)";//删除子信息
getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
session.createQuery(hql).setParameterList("id",cids).executeUpdate();
session.createQuery(hqlchild).setParameterList("parentid",cids).executeUpdate();
return null;
}
});
}