2013-05-09 79 views
0

我在Java中使用数据映射器模式来访问数据库。在另一个映射器内调用映射器可以吗?就我而言,映射器应该独立工作而不依赖于其他映射器,但似乎与我一起工作在同一项目上的其他人有不同的观点。在Java中的另一个数据映射器内使用数据映射器?

举个例子:我有一个Customer对象和一个ContactPerson对象。客户有一个ContactPerson对象作为字段。为了从数据库获取数据,我有一个CustomerMapper和一个ContactPersonMapper。从数据库中检索客户数据时,我需要同时获取其ContactPerson数据。在我的CustomerMapper中使用ContactPerson映射器是一个好主意,还是我应该让映射器完全独立于彼此?

回答

1

我想你在这里使用类似于spring jdbctemplate和mappers的东西。我使用这种模式很多,我倾向于同意你的看法。我从不在映射器中调用第二个映射器。在我看来,当映射器是独立的时候,代码更容易测试和读取。我更喜欢在DAO中尽可能少的逻辑,并将逻辑留给其他代码级别。

过去有几次我在mappers里面创建逻辑来将结构映射到更高级的对象,但是我甚至不这么做。我认为最好的方法是让制图人员非常简单。

+0

我同意这一点。当我第一次看到数据映射器模式时,我立即想到这暗示着映射器只是单独的。我想如果有人改变了在另一个映射器中使用的映射器,可能会出现大的代码故障。感谢你的回答。我希望这也得到其他人的证实。 – ZimZim 2013-05-09 08:28:42