【发布时间】:2020-09-19 09:46:12
【问题描述】:
我正在关注this tutorial 关于 DTO 并检查将实体转换为 DTO 的方式。我想知道惰性关系是什么意思,如果在将其转换为DTO的那一刻,我需要获取数据才能将其设置为DTO类?我总是需要先获取数据,所以我设置它是懒惰还是渴望?
【问题讨论】:
-
这取决于你的序列化的细节。特别是,如果您只使用 ID 序列化相关实体(避免循环的好主意),您的 JPA 提供程序可能不需要获取惰性实体。
-
我不明白你的意思..按照本教程的思路,将所有数据从实体传输到DTO,然后使用DTO进行操作。
-
超越 turorial,如果您的 DTO 不是持久实体的直接映射,事情就会变得有趣。如果您的 DTO 是两个不同对象的聚合,不需要任何相关实体怎么办?偷懒,那就是胜利了。这是想要提前获取数据(以及如何获取数据,例如 JOIN 与单独的 SELECT)与及时获取数据之间的权衡(或逐个调整)。
-
如果我有一个/两个具有惰性关系的实体,在它与 DTO 映射的那一刻,我需要从孩子那里获取数据,所以,惰性关系没有任何意义。我需要在 DTO 中保存所有数据,因为我不知道什么时候需要它。我不确定你是否明白我的意思。也许我没有正确解释