在开发过程中,我们在接收外界传来的参数时往往涵盖了多个实体类的字段,因此便引入了dto,但是我们完全没有必要在为一个dto重写增删改查的方法,甚至不需要有dto,但是由于swagger注解的原因我们不得不在接受参数的列表中填写一个dto才能调接口来辅助查询,但是增删改查的方法我们可以使用原实体类的。
首先我们可以在主实体类SOheader37810里利用@Transient
注解填写需要返回的非数据库字段
如图可以看到接受和返回的分别是dto和实体类
那么问题来了,我们如何将传过来的dto转换成我们的实体类呢其实很简单,你要做的是编写一个工具类,工具类利用了jsonparseOject的方法将传过来的dto转换成字符串之后再将字符串转换成对应的实体类
其他的还有dto与数组之间的转换
public static <T> List<T> transformArrObj(Object in, Class<T> outClass) {
return JSON.parseArray(JSON.toJSONString(in), outClass);
}
public static <T> T transformObj(Object in, TypeReference<T> t) {
return JSON.parseObject(JSON.toJSONString(in), t);
}
}
以上就是最简单的两种转换形式,适合新手小白,当然网上还有一些更复杂一点的逻辑。