使用Spring MVC,我们通常会看到Controller,Service和Repository层。 Repository层使用Entity模型,它与数据库一对一映射。我想到了 -
这个问题可能已被提出,但我找不到。所以请原谅我重复的问题。
答案 0 :(得分:5)
答案 1 :(得分:4)
1)是的,
2)不,
3,4)使用实体进行输出,但使用CommandObjects和DTO(但不是实体)进行输入。这取决于您的体系结构,但是您不希望客户端对您实体的每个字段进行操作,那么您需要将用于请求映射(命令对象)的对象与您的域实体分开。
答案 2 :(得分:0)
整个服务层使用的实体模型应该相同。 根据您的体系结构和应用程序的复杂性,您可能希望在服务和控制器层中使用不同的域模型。 我的建议是:
ModelProjector通过匹配属性名称将一个模型映射到另一个模型。如果它们不匹配,则可以通过注释告诉它。也可以使用非常简单的注释将复杂的实体层次结构映射到“扁平化”的数据结构上。实体类保持不变。