hibernate如何解除关系———只删除多方保留一方

it2022-05-08  7

现在有sub和fee两个对象,关系为一对多,在删除时,有时,只会删除一方数据,现在要求只删除多方; 首先看两者的关系为也可以参照文件 只删除多方/解决hibernate删除时的异常 deleted object would be re-saved by cascade (remove deleted object from associa -      在sub文件中有:           private List<AgreementFee> agreFee = new ArrayList<AgreementFee>();    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY,mappedBy = "agreementSub")    public List<AgreementFee> getAgreFee() {        return agreFee;    }    public void setAgreFee(List<AgreementFee> agreFee) {        this.agreFee = agreFee;    }    在fee文件中有: 如何解除关系,删除多方呢           /**      * 删除子列表下面的费用     * @author chensy     * @date 2013-11-13     * @param subId     */    public void delSubMes(String subId){        //获得子列表        AgreementSub agreementSub = agreementSubDao.queryBySubId(subId);        //获得费用        List<AgreementFee> list = agreementSub.getAgreFee();        List<String> ids = new ArrayList<String>();        for (AgreementFee agreementFee : list) {                ids.add(agreementFee.getId());        }        if(ids!=null && ids.size() > 0){            agreementFeeDao.delFeeMes(ids);        }    }      fee       /**      * 删除费用     * @author chensy     * @date 2013-11-14     * @param ids     */    public void delFeeMes(List<String> ids){        session = getSession();        AgreementFee agreementFee = null;        for (String string : ids) {            agreementFee = this.queryAgreementFee(string);            agreementFee.getAgreementSub().getAgreFee().remove(agreementFee);            agreementFee.setAgreementSub(null);        }        session.delete(agreementFee);    } 来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/babyhhcsy/p/3434652.html


最新回复(0)