码迷,mamicode.com
首页 > 其他好文 > 详细

delete 删除

时间:2020-06-15 15:57:01      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:serial   存在   seve   lis   from   creat   create   ges   etc   

    public void deleteAirConditionInfo(DeviceAirConditionInfo delete) {

        DeviceAirConditionInfo aircondition = em.find(
                DeviceAirConditionInfo.class, delete.getId());
        if (aircondition == null) {
            getStatusMessages().addFromResourceBundle(Severity.WARN,
                    "数据不存在或已被删除");
            return;
        }
        
        if (!checkDeleteWithPrompt("DeviceAirConditionInfo", delete.getId())) {
            return;
        }
 
//        for (AnalogInputInfo info : aircondition.getAnalogairportOutPut()) {
//            info.getAnalogairportOutPut().remove(aircondition);
//            em.persist(info);
//        }
        
//        if (aircondition.getAnalogairportOutPut().size() > 0) {
//            getStatusMessages().addFromResourceBundle(Severity.WARN,
//                    "该空调记录已关联温湿度联动,不能删除!");
//            return;
//        }

//        em.remove(aircondition);
//        em.flush();
        
        stipulationUtilAction.delStipulation(aircondition.getId(),
                "DeviceAirConditionInfo");

        loadserialAirConditionInfo(currSerialPortInfo);

        operateLogUtilAction.addSystemOperateInfo(10162L,
                "[" + currDeviceInfo.getIpAddress() + "]" + "删除空调记录:"
                        + aircondition.getConditionname() + "操作成功!",
                currDeviceInfo.getControlersn(),
                currDeviceInfo.getControllername());

//        getStatusMessages().addFromResourceBundle(Severity.INFO, "删除空调记录成功!");
    }

自己做的映射关系表,删除时同时查询映射表,删除或取消有外键关联的其他表里的数据

 技术图片

老的删除方式,把所多对一的关联数据判断一遍,存在数据的提示不能删除。

(注:多对多关系不需要处理,hibernate删除对象的时候会自动处理多对多的关系,会删除中间表里的记录)

技术图片

 

把数据删除后,还需要在展示的列表中也删除这个对象,其实没有必要,下面有做重新获取列表的操作

 技术图片

 

 重新获取列表

技术图片

 

 这个 delete from DeviceControlLog 时,airCondition字段有空值的情况,但是并不影响这句sql的执行

//        List<Long> mainid = new ArrayList<>();
//        mainid.add(20L);
//        
//        String sqldel = " delete from DeviceControlLog a where a.airCondition.id in :mainid ";
//        
//        Query querydel = em.createQuery(sqldel);
//        querydel.setParameter("mainid", mainid);
//        
//        int count = querydel.executeUpdate();
//        
//        getStatusMessages().addFromResourceBundle(Severity.INFO,
//                "删除 " + count + " 记录!");

 

技术图片

 

delete 删除

标签:serial   存在   seve   lis   from   creat   create   ges   etc   

原文地址:https://www.cnblogs.com/LcxSummer/p/13131105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!