将hibernate实体带到表示层是不错的做法?或者我们是否需要将实体的所有属性映射到值对象,而值对象将用于UI?
请让我知道这两个方面的优点和缺点。
我们什么时候应该使用什么?
答案 0 :(得分:13)
你所谓的DTO是ORM中的实体。它们通常是包含业务逻辑的域模型的一部分,并且大部分时间包含的数据多于呈现单个视图所需的数据。我个人的经验法则
当DAL与视图之间没有传输层时,在视图中使用实体,并且几乎没有业务逻辑:
当存在传输层和/或视图数据与实体不同或聚合许多不同实体时,将实体映射到DTO
答案 1 :(得分:0)
如果您将实体暴露在不同的层和模块中,您还可以获得更多的性能和RAM使用效率。这完全取决于你走哪条路,但我从来没有见过企业甚至是中等规模的应用程序,它们暴露了数据服务项目/层之外的实体。