开发经验:dto与entity


前言

前段时间在跟一个小项目,期间遇到了一些问题,想简单记录一下,如有错误请大家指正。


一、dto是什么?

dto称Data Transfer Object 即数据传输对象,一般用于展示层与层之间的数据传输。在实际开发中,我们会根据业务场景和需求设计表结构,先画出大概的E-R图,消除冗余字段,并且设计原则得满足3NF,但是很多情况下前端页面需要的数据往往并不和我们表中的数据一致,因此我们需要根据根据页面提交的数据来封装我们的实体类,由此产生了dto。

二、如何使用及使用场景

1.创建dto

举个例子,我们都点过外卖,有的菜会有他的口味信息,当我们访问点餐界面时,他会展示菜品即其口味信息等,但是设计表时,为避免数据冗余,菜品表(dish)与口味表(dishFlavor)会设计成两张表,因此我们给页面传输数据时就不能单单传递dish这一实体,需要封装一个dishDto对象。
代码如下(示例):

@Data
//让他继承dish实体类,即dish的属性他也都有,然后扩展一些我们需要的属性
public class DishDto extends Dish {
    private List<DishFlavor> flavors = new ArrayList<>();//对应的口味

    private String categoryName;
}

2.根据具体业务来完善service,controller代码

由于我们将两个表的数据封装到了一起,所以在做增删改的时候会操作两张表或多张表,因此需要开启事务,并且需要根据具体业务来完善代码。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值