这里,遇到了一个debug:

 @Override
    public void setPrimaryPartyLocation(PartyLocation partyLocation) {
        if (!getPartyLocations().contains(partyLocation)) {
            throw new IllegalArgumentException("Party location passed is not known to this party");
        }
        for (PartyLocation loc : getPartyLocations()) {
            loc.setPrimaryLocation(false);
        }
        partyLocation.setPrimaryLocation(true);
    }

底层调用该方法时,getPartyLocations总是未null,而partyLocation参数又是有值的,所以,导致无法setPrimaryLocation成功。一直想调用entity.setLocations,但是,没办法调用该方法。

经过simon帮忙分析,最后,添加上

party.addLocation(location,false);

因为,该方法内部实现了entity.setLocations方法。

总结原因:entity未setLocations,去getLocations的时候,肯定是拿不到数据的。

要学习simon教我的debug调试功能,找到自己需要完善的代码。希望自己慢慢的掌握debug。

private void updateAndCreateLocations(PersonDto dto, Person entity) throws DuplicateLocationException{
        Set<String> titleSet = new HashSet<>();
        if(Objects.isNull(dto.getPartyLocations())){
            return;
        }

        for(PartyLocationDto partyLocationDto : dto.getPartyLocations()){
            if(StringUtils.isNotBlank(partyLocationDto.getLocationTitle())){
                String trimmedTitle = partyLocationDto.getLocationTitle().trim();
                if(!titleSet.add(trimmedTitle)) {
                    throw new DuplicateLocationException("DuplicateLocation Exception");
                }
            }
        }
        for(PartyLocationDto partyLocationDto : dto.getPartyLocations()){
            if(StringUtils.isBlank(partyLocationDto.getLocationTitle())){
                break;
            }
            Integer locationId = Integer.parseInt(partyLocationDto.getId());
            Party party = (Party)entity;
            PartyLocation location;
            if(locationId<1){
                location = new PartyLocationEntity(party,partyLocationDto.getLocationTitle());
                party.addLocation(location,false);
                if(partyLocationDto.isPrimaryLocation()){
                    entity.setPrimaryPartyLocation(location);
                }
            }else{
                location = crmManager.findPartyLocation(locationId);
                party.addLocation(location,false); //entity has not locations.
                if(partyLocationDto.isPrimaryLocation()){
                    entity.setPrimaryPartyLocation(location);
                }
            }
            populatePartyLocation(location, partyLocationDto);

        }
    }

PartyLocation的Post请求,可以更新已有的,但是不能添加一个新的partyLocation。

因此,这里需要再写一个partyLocation的post请求,这样,就可以实现新增一个新的PartyLocation了。---待完成。

PartyLocation的Post请求问题---debug的更多相关文章

  1. Eclipse设置断点无效、无法拦截请求进行Debug调试

    场景: 在Eclipse中添加Debug断点,从后台页面中点击修改按钮提交数据,发现打断点的地方并没有拦截到请求,接下来对此情况的进行分析. 分析: * 如果页面是根据业务需求复制别的相似html页面 ...

  2. 记一次有关GET/POST请求的Debug经历

    Bug描述: 电商网站, 产品列表页面,加入购物车按钮,当连续点击“加入购物车”按钮时,在MAC上的Safari上,只会有部分请求通过 Ajax 被发送出去,而在 Chrome/IE/Firefox ...

  3. Nginx 开启 debug 日志的办法

    译序:一般来讲,Nginx 的错误日志级别是 error,作为 Nginx 用户来讲,你设置成 info 就足够用了.         但有时有些难以挖掘的 bug,需要看到更详细的 debug 级别 ...

  4. 发运模块中如何创建Debug 文件

     版本11.5.9到12.x A. 针对发运事务处理或者快速发运产生Debug文件 注意:如果通过发运事务处理执行发放,请参考B部分,下面这部分销售订单发放是格外的设置和日志文件. 1.   每一 ...

  5. JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器

    有这样一个压力测试环境,有一个上传页面,上传成功之后服务器会返回一些上传信息(比如文件的 id 或者保存路径之类的信息),然后压力机会继续下一个请求,比如调整 id 为 xx 的文件的一些信息等等.问 ...

  6. spring boot aop打印http请求回复日志包含请求体

    一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  7. jmeter脚本开发-BeanShell Sampler与Debug Sampler

    BeanShell支持java对象的调用,所以可直接通过BeanShell来调用java接口程序. BeanShell调用java接口例子 1.先编写两个简单的java类 创建java简单工程,并创建 ...

  8. 【AMAD】django-debug-toolbar -- 一个可配置的panel,展示当前request/response的debug信息

    简介 个人评分 简介 django-debug-toolbar1是一个django开发工具,可以在你开发django页面的时候展示一些当前请求的debug信息:  个人评分 类型 评分 实用性 ⭐️ ...

  9. <转>Unity3D研究院之C#使用Socket与HTTP连接服务器传输数据包

    最近项目中需要使用HTTP与Socket,把自己这段时间学习的资料整理一下.有关Socket与HTTP的基础知识MOMO就不赘述拉,不懂得朋友自己谷歌吧.我们项目的需求是在登录的时候使用HTTP请求, ...

随机推荐

  1. Project://CRM

    初始化 考勤 录入成绩 查看成绩 待续...

  2. CANopenSocket 测试

    /************************************************************************* * CANopenSocket 测试 * 说明: ...

  3. Linux 获取随机密码

    /****************************************************************************** * Linux 获取随机密码 * 说明: ...

  4. UVA - 1218 Perfect Service (树形dp)(inf相加溢出)

    题目链接 题意:给你一个树形图,让你把其中若干个结点染成黑色,其余的染成白色,使得任意一个白色结点都恰好与一个黑色结点相邻. 解法比较容易,和树上的最大独立集类似,取一个结点作为树根,对每个结点分三种 ...

  5. webpack 单页面应用实战

    这篇文章将介绍如何利用 webpack 进行单页面应用的开发,算是我在实际开发中的一些心得和体会,在这里给大家做一个分享.webpack 的介绍这里就不多说了,可以直接去官网查看. 关于这个单页面应用 ...

  6. LOJ 10189 仓库建设 ——斜率优化dp

    题目:https://loj.ac/problem/10189 #include<iostream> #include<cstdio> #include<cstring& ...

  7. MySQL的varchar类型注意事项

    前几天就在工作中发现这样一个问题:当某个字段的类型为varchar时,字段保存的值类似'100,200,300'  和 '100' 或 '100,400'.写SQL语句的时候就会犯这样的错误,例如: ...

  8. 如果有多个集合的迭代处理情况【使用MAP】

    在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内.它也允许你指 ...

  9. SpringMVC—对Ajax的处理(含 JSON 类型)(3)

    五.服务器端的 SpringMVC 如何返回 JSON 类型的字符串. 请求: $("#testJson8").click(function () {    $.ajax({   ...

  10. SQL中得到最后一个“-”后面的字符串

    declare @str varchar(50) set @str='-'+'1-9-3-2'--前面加个'-'防止没有'-'出错 select REVERSE(SUBSTRING(REVERSE(@ ...