重构get请求代码---PartyLocation
将原理在PersonDto中定义的partyLocations,剪切到PartyDto中去。
@JsonApiToMany
private List<PartyLocationDto> partyLocations;
重构PersonConverter中的updateDto方法,
@Overridepublic void updateDto(Person entity, PersonDto dto) { Locale l = currentUserProvider.get().getLocale(); partyConverter.updateDto(entity, dto); dto.setPronunciation(entity.getPronunciation()); ....}
PartyConverter代码重构如下:
public class PartyConverter implements Converter<Party, PartyDto> {
@Inject
private ApiContext apiContext;
@Override
public void updateDto(Party party, PartyDto partyDto){
partyDto.setId(party.getId());
partyDto.setName(party.getName());
partyDto.setSpecificResourceType(new ResourceDto(apiContext.getResourceType(party), partyDto.getId()));
setPartyLocations(party, partyDto);
}
@Override
public void updateEntity(PartyDto dto, Party entity) {
// System.out.println("--");
PersonEntity personEntity = (PersonEntity)entity;
}
public void setPartyLocations(Party party, PartyDto partyDto){
List<PartyLocationDto> partyLocationDtoList = new ArrayList<PartyLocationDto>();
if(Objects.isNull(party.getPartyLocations())){
return ;
}
for(PartyLocation partyLocation:party.getPartyLocations()){
PartyLocationDto partyLocationDto = new PartyLocationDto(partyLocation.getId());
partyLocationDtoList.add(partyLocationDto);
}
partyDto.setPartyLocations(partyLocationDtoList);
}
}
修改relationship:注意,传递的参数是PersonDto,如果是PartyDto,则会报错relationship出错,思考为什么。

@Singleton
public class PersonToPartyLocationRelationship extends AbstractEntityToPartyLocationRelationship<PersonDto> {
}
public abstract class AbstractEntityToPartyLocationRelationship<S extends AbstractKatharsisDto>
extends AbstractRelationshipRepository<S, PartyLocationDto> {
@Override
public List<PartyLocation> getTargetEntities(Object source, String fieldName, QueryParamsHelper helper) {
Party sourceEntity = cast(source);
List<PartyLocation> partyLocations = new ArrayList<PartyLocation>();
if(!Objects.isNull(sourceEntity.getPartyLocations())){
partyLocations.addAll(sourceEntity.getPartyLocations());
}
return partyLocations;
}
@Override
public void addRelations(S source, Iterable<String> targetIds, String fieldName) {
}
}
再次编译,则可以get请求成功。同时,post请求也是ok的。
补充:何时调用relationship,这是kathasis内部自己定义的,与类名是没有关系的,主要是和传递的泛型参数有很大的关系。--------感谢andrew指导分析这个知识点。
重构get请求代码---PartyLocation的更多相关文章
- HTTP请求代码整理
HTTP请求代码整理 类别 代码 注释 1xx – 信息提示 100 继续 101 切换协议 2xx - 成功 200 确定.客户端请求已成功 201 已创建 202 已接受 203 非权威性信息 2 ...
- jmeter 的java请求代码在main方法里面执行
1.新建一个java请求执行加法类 public class TestDemo { public int Tdemo(int a,int b){ int sum = 0; sum = a+b; ret ...
- 如何重构"箭头型"代码
本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法.按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得 ...
- 使用策略模式重构switch case 代码
目录 1.背景 2.案例 3.switch…case…方式实现 4.switch…case…带来的问题 5.使用策略模式重构switch…case…代码 6.总结 1.背景 之前在看<重构 ...
- js基石之---易读、易复用、易重构的 JavaScript 代码规范
易读.易复用.易重构的 JavaScript 代码规范 1.变量命名规范有意义 Bad: const yyyymmdstr = moment().format("YYYY/MM/DD&quo ...
- RAID5 IO处理之写请求代码详解
我们知道RAID5一个条带上的数据是由N个数据块和1个校验块组成,其校验块由N个数据块通过异或运算得出,这样才能在任意一个成员磁盘失效时通过其他N个成员磁盘恢复出用户写入的数据.这也就要求RAID5条 ...
- .NET重构—单元测试的代码重构
阅读目录: 1.开篇介绍 2.单元测试.测试用例代码重复问题(大量使用重复的Mock对象及测试数据) 2.1.单元测试的继承体系(利用超类来减少Mock对象的使用) 2.1.1.公用的MOCK对象: ...
- C# 主动发起请求代码
本文用于写代码是给提示 private string GetHW(string uri) { string returnStr = ""; HttpWebRequest hwReq ...
- 重构 MVC; 代码分享工具(重构,改进,打分)
include 模块和 extend 模块的不同: Class Extension: 通过向singleton class中加入Module来定义class method,是对象扩展的一个特例. ...
随机推荐
- PHP数据结构之实现单链表
学习PHP中,学习完语法,开始尝试实现数据结构,今天实现单链表 <?php class node //节点的数据结构 { public $id; public $name; public $ne ...
- IP地址的基础划分
1.基础知识 1.1 IP地址是由网络号(net ID)与主机号(host ID)两部分组成的. 1.2 IP地址的分类 IP地址长度为32位,点分十进制(dotted decimal)地址: 采 ...
- 学习动态性能表(20)--v$waitstat
学习动态性能表 第20篇--V$WAITSTAT 2007.6.15 本视图保持自实例启动所有的等待事件统计信息.常用于当你发现系统存在大量的"buffer busy waits" ...
- 谈谈Linux内核驱动的coding style
最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核的coding style要求还是差很多.当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代 ...
- python之 前端HTML/CSS基础知识学习笔记
1. 文件结构: HTML文件的固定结构: <html> <head>...</head> <body>...</body> </ht ...
- bzoj 2655 calc——拉格朗日插值
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2655 先考虑DP.dp[ i ][ j ]表示值域为 i .选 j 个值的答案,则 dp[ ...
- PHP7卓越性能背后的原理有哪些?
作者:韩天峰链接:http://www.zhihu.com/question/38148900/answer/75115687来源:知乎 PHP7在运行原理上与PHP5相比并没有变化,这与hhvm不同 ...
- [转载]create_proc_read_entry中函数的说明
原型: struct proc_dir_entry *create_proc_read_entry (const char *name, mode_t mode, struct proc_dir_en ...
- maven配置的问题,maven的环境变量配置
不要在用户变量处配置用户变量,直接将maven的bin文件夹路径配置到path环境变量
- java继承初级
总结:重写方法,方法体内容不同. 还有子类都不能加public.它表示公共,一个程序只能有一个公共类 package com.sa; public class Ac { public void rea ...