实体类Entity与dto的互相转换

在开发过程中,我们在接收外界传来的参数时往往涵盖了多个实体类的字段,因此便引入了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);
    }
}

以上就是最简单的两种转换形式,适合新手小白,当然网上还有一些更复杂一点的逻辑。

实体类Entity)是指在领域模型中表示具体业务对象的类,它通常包含了业务逻辑和持久化状态的方法。在软件开发中,实体类一般数据库中的表相对应。 VO(Value Object)是值对象的缩写,它是一种不可变的对象,用于封装一组相关的数据。VO对象通常用于数据传输和展示层,用于将数据从一个组件传递到另一个组件,它包含了一些属性和相关的getter和setter方法。 DTO(Data Transfer Object)是数据传输对象的缩写,它用于在不同层之间传输数据。DTO对象通常包含了多个属性,用于将数据从一个层传输到另一个层,它可以通过序列化和反序列化来实现数据的传输。 区别: 1. 定位不同:实体类用于表示具体业务对象,在领域模型中具有业务逻辑;VO用于封装数据用于传输和展示;DTO用于在不同层之间进行数据传输。 2. 可变性:实体类通常具有可变性,因为它包含了业务逻辑和状态的改变;VO通常是不可变的,因为它只用于封装数据;DTO可以是可变或不可变的,根据具体需求而定。 3. 方法:实体类通常包含了业务逻辑和持久化状态的方法;VO通常只包含了属性和相关的getter和setter方法;DTO通常只包含了属性和相关的getter和setter方法,用于数据传输。 需要注意的是,实际使用中,实体类、VO和DTO的定义和使用可能会有一些差异,具体要根据项目需求和开发规范来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值