Spring MVC类设计的存储库

时间:2018-08-13 13:59:30

标签: java spring-mvc model-view-controller dao dto

我在设计级别有一个问题。在我们的应用程序中使用DAO或DTO之间存在争论。

我遍历了现有文章,并且知道仅在表示复杂对象时才使用DTO。但是,仅使用表上的联接操作即可生成视图。

数据库:

表格:

game
game_details (has a primary key of Game) - There will be at max 4 rows for a given game_id

我的视图包含表game和game_details中的所有列。这4行中的每行将显示在不同的选项卡中。 对于视图中的每个更改,都有3/4的可能性更新两个表。

现在最好的方法是什么。 1.将整个视图包装为DTO。 2.或使用GameDetails Model对象列表定义我的模式Game。

如果我们采用第二种方法,那么持久化数据的方式是否会发生任何变化。

1 个答案:

答案 0 :(得分:0)

数据访问对象就是这样做的。他们如何做取决于您使用的技术。我喜欢Hibernate进行CRUD操作。

我使用术语“数据传输对象”来指代描述我的API的对象。因此,我将定义与在RESTful服务中传递的JSON匹配的DTO。

我使用DTO的实体对象将API与数据库分离。它涉及更多处理,但是我发现额外的努力值得。

如何定义DTO取决于您,并且取决于您如何描述在服务API中传递的数据。扁平结构更易于使用JDBC填充;但是,它通常包含大量冗余数据,并且需要更多逻辑来处理。一种结构化的方法,其中标头包含详细信息列表, 可能需要更多的工作来填充,但是可以避免冗余并且更易于使用。