如果只是想删除两个表之间建立的关系,则只需要在持久层做如下操作:
Session session = HibernateUtils.getCurrentSession();
String hql="from Supplier s where s.s_name=:name";
@SuppressWarnings("rawtypes")
Query query = session.createQuery(hql);
query.setString("name", s_name);
Supplier supplier = (Supplier) query.uniqueResult();
User user = session.get(User.class, u_id);
user.getSuppliers().remove(supplier);
只需要从一个主控方调用remove即可,随后业务逻辑层tx.commit,这样第三方维护表中的关系字段就会删除,而不需要做其他操作
如果用了级联删除,调用delete会将关联表的相关字段也删除,不仅仅是关系,所以一般不使用级联删除