为了账号安全,请及时绑定邮箱和手机立即绑定

Spring - 使用基于接口的投影比基于类的投影 (DTO) 更理想吗?

Spring - 使用基于接口的投影比基于类的投影 (DTO) 更理想吗?

明月笑刀无情 2021-09-03 16:35:05
所以我偶然发现了两种投影选择,接口与类。我的问题是,选择基于类的投影(使用 DTO)真的比选择接口更好吗?DTO 的概念不是只检索信息而不是实体本身吗?如果是,那么界面投影是不是更适合它,因为它只是一个界面?我当然是在说它是否对性能更好。
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

只检索信息而不是实体本身?

如果您需要实体的唯一部分内容或来自多个表的复杂数据,您应该使用 DTO/投影。

界面投影是不是更适合它,因为它只是一个界面?

我更喜欢使用基于接口的投影,因为它们比基于类的投影有一些优势:

1)它们更容易实现(它只是一个接口)

2)它们可以是开放的——所以我们可以扩展它们的功能

3)我们必须在您的自定义查询中使用基于类投影的构造函数,与基于接口的不同,比较:

Query("select m.name as name from Model m") 

List<ModelProjection> getModelList();


Query("select new com.example.ModelDto(m.name) from Model m") 

List<ModelDto> getModelList();


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信