所以我偶然发现了两种投影选择,接口与类。我的问题是,选择基于类的投影(使用 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();
添加回答
举报
0/150
提交
取消