重构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,是对象扩展的一个特例. ...
随机推荐
- OpenCV-Python在图片上输出中文
OpenCV中在图片上输出中文一般需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件.但使用FreeType ...
- Equation
You are given an equation: Ax2 + Bx + C = 0. Your task is to find the number of distinct roots of th ...
- position:sticky属性测试
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 学习动态性能表(6)--v$session_wait&v$session_event
学习动态性能表 第六篇-(1)-V$SESSION_WAIT 2007.5.30 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什 ...
- Linux Matlab mex gcc 版本
一般MATLAB的mex支持的gcc版本都比最新的gcc要低一些,所以一般要配置一下. 假设当前版本的gcc是4.8,matlab支持4.6,可以使用以下的方式解决(任选一种).(自己装好gcc-4. ...
- java bean Format注解用法
@NumberFormat(style=Style.NUMBER) private int number; @DateTimeFormat(pattern="yyyy-MM-dd&qu ...
- (转)更改Web.config中对上传文件大小限制
.net上传超过200K的图片的时候,会跳转到404,但是url没有错误,真J8的坑啊. 本文转载自:http://www.cnblogs.com/zwffff/archive/2009/04/29/ ...
- 机器学习:SVM(核函数、高斯核函数RBF)
一.核函数(Kernel Function) 1)格式 K(x, y):表示样本 x 和 y,添加多项式特征得到新的样本 x'.y',K(x, y) 就是返回新的样本经过计算得到的值: 在 SVM 类 ...
- Dubbo各种协议详解
(1)协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在 ...
- Linux下Tomcat的启动和停止(包括杀死tomcat进程)
打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.ou ...