论dto的必要性

以前刚开始工作的时候,一直纳闷展示数据为什么要用对象dto来展示,而不直接用对象,后来百度发现主要为了隐藏不需要展示的属性,用dto展示前端需要的数据,entity对应表.

  刚刚敲代码的时候发现,

当更新数据用了事务,本来我想更新的是user.getEmail()的数据,但是在执行更新方法userDao.saveAndFlush(updateUser)后,因为事务的存在,jpa是只有等整个service方法执行完成后才会把数据提交到数据库,而我在saveAndFlush方法后又执行了

updateUser.setPassword(StringUtils.EMPTY);
updateUser.setEmail("无敌@qq.com");
这两个方法,想把这个对象返回给前端,结果就会导致最后提交给数据库的数据为密码为空,email为 无敌@qq.com,所以我们要用个专门展示给表示层的对象的分装类来返回给前台,而不要直接用entity(加上为了隐藏不需要展示的数据 这两个原因),之前一直没意识到这个问题,因为公司一直每个对象都有对应的dto用来展示数据,用习惯了,这次自己遇到了记录下来以免下次犯同样错误.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值