gpt4 book ai didi

java - 使用 hibernate 时的 DAO 模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:29 26 4
gpt4 key购买 nike

我们在应用程序中使用hibernate,喜欢使用DAO 模式来实现应用程序的数据层。我看到了一些关于使用 ValueObjects/DTO 从 DAO 返回数据的建议

public interface EmployeeDAO {
List<EmployeeDTO> getEmployees();
}

返回 ValueObjects/DTO 而不是返回 hibernate 域对象的优势是什么

public interface EmployeeDAO {
List<Employee> getEmployees();
}

将数据从 hibernate 对象复制到值对象并在内存中拥有相同数据的两个副本,这不是矫枉过正吗? ValueObjects 真正增加了什么优势?

ValueObjects 是否只是业务层和 View 层之间的首选,是否应该在 DAO 中使用它们

谢谢你的建议

湿婆

最佳答案

通常应避免使用 DTO。不过,它们在某些情况下可能很有用:

  • 不是返回整个对象图,而是返回仅包含有趣信息的临时 DTO。这使代码更加自文档化。否则,尤其是当返回的实体被分离时,很难知道哪些关联已加载,哪些没有。
  • 当您必须返回不返回实体实例(聚合等)的查询结果时
  • 当由于技术原因(无法访问 Hibernate 库等)无法在客户端使用 Hibernate 实体时。尽管在这种情况下,将实体转换为 DTO 的角色可能是外观层的角色,而不是 DAO 的角色。

关于java - 使用 hibernate 时的 DAO 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com