Hibernate 我们为什么要维护DTO和实体?

Hibernate 我们为什么要维护DTO和实体?,hibernate,dto,Hibernate,Dto,当域(DTO)与实体类具有相同的内容时,我们为什么要将它们与实体类分开? 我知道我们在UI中使用DTO,在Hibernate中使用实体,但是我们可以在DTO本身中实现注释?您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO 您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO 您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO 您实际上不必为它创建DTO。我的建议是,当您必须更改

当域(DTO)与实体类具有相同的内容时,我们为什么要将它们与实体类分开?
我知道我们在UI中使用DTO,在Hibernate中使用实体,但是我们可以在DTO本身中实现注释?

您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO


您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO


您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO


您实际上不必为它创建DTO。我的建议是,当您必须更改实体以其他方式显示它们时,引入DTO


如果您直接使用实体,您可能会遇到各种问题,您可以通过引入单独的层来解决这些问题(尽管我不会将它们命名为DTO):

  • 对UI、域Logik和数据库的要求可能会有所不同(在每个非平凡的项目中也会有所不同):可能您希望将内容存储在Blob中,但希望它作为域中的对象结构。也许您需要一个UI的“isChanged”字段,您不需要将其存储在数据库中,因为在那里它将始终为false,以此类推

  • 至少当您的实体连接到会话时,每个更改都被安排在数据库中持久化,如果这是您想要的,这可能会很好,但当您只想存储部分更改时,这也可能会很烦人


  • 他说:它添加了额外的代码,如果您没有这些或类似的问题,没有DTO没有本质上的错误。

    如果您直接使用实体,您可能会遇到各种问题,您可以通过引入单独的层来解决这些问题(尽管我不会将它们命名为DTO):

  • 对UI、域Logik和数据库的要求可能会有所不同(在每个非平凡的项目中也会有所不同):可能您希望将内容存储在Blob中,但希望它作为域中的对象结构。也许您需要一个UI的“isChanged”字段,您不需要将其存储在数据库中,因为在那里它将始终为false,以此类推

  • 至少当您的实体连接到会话时,每个更改都被安排在数据库中持久化,如果这是您想要的,这可能会很好,但当您只想存储部分更改时,这也可能会很烦人


  • 他说:它添加了额外的代码,如果您没有这些或类似的问题,没有DTO没有本质上的错误。

    如果您直接使用实体,您可能会遇到各种问题,您可以通过引入单独的层来解决这些问题(尽管我不会将它们命名为DTO):

  • 对UI、域Logik和数据库的要求可能会有所不同(在每个非平凡的项目中也会有所不同):可能您希望将内容存储在Blob中,但希望它作为域中的对象结构。也许您需要一个UI的“isChanged”字段,您不需要将其存储在数据库中,因为在那里它将始终为false,以此类推

  • 至少当您的实体连接到会话时,每个更改都被安排在数据库中持久化,如果这是您想要的,这可能会很好,但当您只想存储部分更改时,这也可能会很烦人


  • 他说:它添加了额外的代码,如果您没有这些或类似的问题,没有DTO没有本质上的错误。

    如果您直接使用实体,您可能会遇到各种问题,您可以通过引入单独的层来解决这些问题(尽管我不会将它们命名为DTO):

  • 对UI、域Logik和数据库的要求可能会有所不同(在每个非平凡的项目中也会有所不同):可能您希望将内容存储在Blob中,但希望它作为域中的对象结构。也许您需要一个UI的“isChanged”字段,您不需要将其存储在数据库中,因为在那里它将始终为false,以此类推

  • 至少当您的实体连接到会话时,每个更改都被安排在数据库中持久化,如果这是您想要的,这可能会很好,但当您只想存储部分更改时,这也可能会很烦人


  • 他说:它增加了额外的代码,如果你没有这些或类似的问题,没有DTO并没有本质上的错误。

    实现DTO并不一定是痛苦的。看看为什么要这样做,以及如何避免大部分痛苦。简而言之,使用DTO最常见的原因是

    • 公开实体时的延迟加载问题
    • 需要一个与源不匹配的专用表示法,即在DTO中250个字符后应将字符串截断
    • 表演。实际上,您只需要DTO中字段的一个子集

      • 实施DTO并不一定是痛苦的。看看为什么要这样做,以及如何避免大部分痛苦。简而言之,使用DTO最常见的原因是

        • 公开实体时的延迟加载问题
        • 需要一个与源不匹配的专用表示法,即在DTO中250个字符后应将字符串截断
        • 表演。实际上,您只需要DTO中字段的一个子集

          • 实施DTO并不一定是痛苦的。看看为什么要这样做,以及如何避免大部分痛苦。简而言之,使用DTO最常见的原因是

            • 公开实体时的延迟加载问题
            • 需要一个与源不匹配的专用表示,即字符串,应在