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

现在有sub和fee两个对象,关系为一对多,在删除时,有时,只会删除一方数据,现在要求只删除多方;
首先看两者的关系为也可以参照文件
 
   在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);
    }




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值